将段落段落为句子

Chu*_*Nan 2 python regex python-2.7 text-segmentation

我正在尝试将段落分段为句子.我选择'.','?' 和'!' 作为分割符号.我试过了:

format = r'((! )|(. )|(? ))'
delimiter = re.compile(format)
s = delimiter.split(line)
Run Code Online (Sandbox Code Playgroud)

但它给了我 sre_constants.error: unexpected end of pattern

我也试过了

format = [r'(! )',r'(? )',r'(. )']
delimiter = re.compile(r'|'.join(format))
Run Code Online (Sandbox Code Playgroud)

它也会导致错误.

我的方法有什么问题?

Rob*_*bin 6

.(通配符)和?(零或一个,量词)是特殊的正则表达式字符,你需要转义它们才能按字面意思使用它们.

但是,在你的情况下,使用一个字符类(这些字符不再是特殊字符)将更加简单:

split(r'[!.?] ')
Run Code Online (Sandbox Code Playgroud)

字符类[...]代表"一个字符,包含在字符类中的任何字符".