我希望按如下方式分割字符串:
text = " T?e qu!ck ' brown 1 fox! jumps-.ver. the 'lazy' doG? !"
result -> (" T?e qu!ck ' brown 1 fox!", "jumps-.ver.", "the 'lazy' doG?", "!")
所以基本上我想在". "
,"! "
或"? "
分开,但我希望删除分割点处的空格,而不是点,逗号或问号。
我怎样才能以有效的方式做到这一点?
str split函数仅在分隔符上使用。我想知道是在所有空格上拆分的最佳解决方案,然后在构造所需结果时找到以点,逗号或问号结尾的那些空格。
答案 0 :(得分:9)
您可以使用正则表达式拆分来实现此目的:
>>> import re
>>> text = " T?e qu!ck ' brown 1 fox! jumps-.ver. the 'lazy' doG? !"
>>> re.split('(?<=[.!?]) +',text)
[" T?e qu!ck ' brown 1 fox!", 'jumps-.ver.', "the 'lazy' doG?", '!']
正则表达式'(?<=[.!?]) +'
表示仅匹配一个或多个空格(' +'
)的序列,如果前面带有。,!要么 ?字符('(?<=[.!?])'
)。