2017-09-21 93 views
-1

我想根据句点(句号)作为分隔符找到各种字符串组。 我的句子可以像任何东西:Python正则表达式在句号前后得句子

  1. 气球),它有太多是。”=>我正则表达式应该给组: “气球)”和“它也是”
  2. 漂亮。做它”=>我的正则表达式应该给团体:“美丽”。和“Do it”
  3. 强而大”。“=>我的正则表达式应该给组:”强而大“。 所以说正则表达式应该返回前后两个句子。 我已经尝试了很多正则表达式的组合,没有正则表达式能够捕获所有的例子。请帮助。
+0

请复习[如何创建一个最小,完整和可验证示例](https://stackoverflow.com/help/mcve)并修改您的问题。 – jhenderson2099

+1

为什么不使用'str.split('。')'? –

+0

更好的是:完全使用'nltk'! – Jan

回答

1

您可以分割一个空间和检查空间的后面一段:

import re 

s = ["balloon). It has too be", "beautiful. Do it", "strong and large." ] 
final_data = [re.split("(?<=\.)\s", i) for i in s] 

最终输出:

[['balloon).', 'It has too be'], ['beautiful.', 'Do it'], ['strong and large.']] 
0

如果你有使用模式经常然后使用编译更快处理和使用生成器,如果你的数据包含大的元素。

import re 
pattern = re.compile(r"(?<=\.)\s") 

data = ["balloon). It has too be", "beautiful. Do it", "strong and large." ] 
final_op = (re.split(pattern, d) for d in data) 
print list(final_op)