我试图将段落分段为句子。我选择了'。','?'和'!'作为分割符号。我试过了:
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))
它也会导致错误。
我的方法有什么问题?
答案 0 :(得分:6)
.
(通配符)和?
(零或一个,量词)是特殊的正则表达式字符,您需要将它们转义为字面意思使用它们。
但是,在你的情况下,使用一个字符类(这些字符不再特殊)将更加简单:
split(r'[!.?] ')
字符类[...]
代表"一个字符,字符类中包含的任何字符"。