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)
它也会导致错误.
我的方法有什么问题?
.
(通配符)和?
(零或一个,量词)是特殊的正则表达式字符,你需要转义它们才能按字面意思使用它们.
但是,在你的情况下,使用一个字符类(这些字符不再是特殊字符)将更加简单:
split(r'[!.?] ')
Run Code Online (Sandbox Code Playgroud)
字符类[...]
代表"一个字符,包含在字符类中的任何字符".