我已经看到很多相关的问题,但我似乎仍无法让我的具体例子起作用。 我在一个文件中有一些数据,这几个句子串在一起。我试图将句子分成一个列表,每个句子都是列表的一个元素。但是当我分开一个句号后跟一个空格时,我会在列表的所有元素中丢失句点(除了最后一个)。 我从这开始:
text = "This sentence. And this one. One more."
期望的输出:
["This sentence.", "And this one.", "One more."]
目前我通过text.split('。")来实现这一点:
["This sentence","And this one","One more."]
答案 0 :(得分:3)
使用正面看法:
import re
re.split(r'(?<=\.) ', text)
以上假设您的句子总是以句号和空格结尾(最后一句除外)。
(?<=\.)
背后是正面的,所以上面的正则表达式会在一个点后面的空格上分割,但在进行子串时不会考虑点。
答案 1 :(得分:1)
鉴于您将拆分列表存储在变量中:
strList = text.split()
for line in strList:
line.append('.')
strList[len(strList) - 1] = strList[len(strList) - 1][:-1]
答案 2 :(得分:0)
答案 3 :(得分:0)
这也可以做到
[ i.group(0) for i in re.finditer('\S[^\.]+(\.|.$)', text)]
它匹配除dot之外的任何字符,直到它到达点或行的末尾