将段落分割为句子

2 投票
1 回答
676 浏览
提问于 2025-04-18 03:08

我正在尝试把一段文字分成句子。我选择了'.'、'?'和'!'作为分隔符。于是我试了以下代码:

format = r'((! )|(. )|(? ))'
delimiter = re.compile(format)
s = delimiter.split(line)

但是它给了我一个错误,提示是sre_constants.error: unexpected end of pattern

我还试了另外一段代码

format = [r'(! )',r'(? )',r'(. )']
delimiter = re.compile(r'|'.join(format))

结果也出现了错误。

我的方法有什么问题呢?

1 个回答

6

.(通配符)和 ?(表示零个或一个的量词)是正则表达式中的特殊字符。如果你想要字面意思使用它们,就需要进行转义。

不过,在你的情况下,使用字符类会简单得多(在字符类中,这些字符就不再是特殊的了):

split(r'[!.?] ')

字符类 [...] 的意思是“一个字符,可以是字符类中包含的任何一个”。

撰写回答