我想根据python中的分隔符将文本分成几个句子。但是,我不想根据数字之间的小数点或数字之间的逗号来分割它们。我们怎么能无视他们。
例如,我有一个文本如下所示。
I am xyz.I have 44.44$. I would like, to give 44,44 cents to my friend. 句子必须是
I am xyz
I have 44.44$
I would like
to give 44,44 cents to my friend你能帮我处理一下正则表达式吗。如果这个问题以前已经问过了,我很抱歉。我找不到它。
谢谢
发布于 2017-01-27 09:15:14
这适用于您的示例,虽然在最后一部分有一个尾声句号(句号),如果这一点重要的话。
import re
s = 'I am xyz. I have 44.44$. I would like, to give 44,44 cents to my friend.'
for part in re.split('[.,]\s+', s):
print(part)输出
I am xyz
I have 44.44$
I would like
to give 44,44 cents to my friend.Wiktor的表达式\s*[.,](?!\d)\s将适用于您的新示例:
I am xyz.I have 44.44$. I would like, to give 44,44 cents to my friend.把它拆开:
\s*将与许多空白字符匹配0。[.,]将匹配,或.字符。(?!\d)将导致该匹配被丢弃。这对于避免在数中分裂是必要的。\s将匹配单个空白字符。请注意,对于“我是22.10年前的我12岁”这样的句子,它仍然会失败,尽管我认为没有任何方法可以单独使用正则表达式来解决这个问题。
https://stackoverflow.com/questions/41890311
复制相似问题