将段落分割为句子
我正在尝试把一段文字分成句子。我选择了'.'、'?'和'!'作为分隔符。于是我试了以下代码:
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'[!.?] ')
字符类 [...]
的意思是“一个字符,可以是字符类中包含的任何一个”。