拆分句点时不删除句点标点-Python
我已经看到了很多与我相关的问题,但我似乎仍然无法让我的具体例子发挥作用。 我在一个文件里有一些数据,是几个句子串在一起的。我试图将这些句子分成一个列表,每个句子都是列表中的一个元素。但是当我在一个句点后加上一个空格时,我的列表中的所有元素(最后一个除外)都会丢失句点。 我首先说:拆分句点时不删除句点标点-Python,python,regex,split,Python,Regex,Split,我已经看到了很多与我相关的问题,但我似乎仍然无法让我的具体例子发挥作用。 我在一个文件里有一些数据,是几个句子串在一起的。我试图将这些句子分成一个列表,每个句子都是列表中的一个元素。但是当我在一个句点后加上一个空格时,我的列表中的所有元素(最后一个除外)都会丢失句点。 我首先说: text = "This sentence. And this one. One more." 期望输出: ["This sentence.", "And this one.", "One more."] 目前,
text = "This sentence. And this one. One more."
期望输出:
["This sentence.", "And this one.", "One more."]
目前,我是通过执行text.split(“.”)来实现这一点的:
假设已将拆分列表存储在变量中:
strList = text.split()
for line in strList:
line.append('.')
strList[len(strList) - 1] = strList[len(strList) - 1][:-1]
假设已将拆分列表存储在变量中:
strList = text.split()
for line in strList:
line.append('.')
strList[len(strList) - 1] = strList[len(strList) - 1][:-1]
使用积极的回头看:
import re
re.split(r'(?<=\.) ', text)
重新导入
关于分割(r’(?使用正面后视:
import re
re.split(r'(?<=\.) ', text)
重新导入
关于split(r’(?您可以使用以下命令并修剪前导空格
[^\.]+\.
您可以使用以下命令并修剪前导空格
[^\.]+\.
这也可以做到
[ i.group(0) for i in re.finditer('\S[^\.]+(\.|.$)', text)]
它匹配除点以外的任何字符,直到它到达点或行尾为止也可以这样做
[ i.group(0) for i in re.finditer('\S[^\.]+(\.|.$)', text)]
它匹配除点以外的任何字符,直到它到达点或行尾您需要lookahead/lookbehindI尝试了此重新拆分(r'\.(?=)',text),但我有相同的问题您需要lookahead/lookbehindI尝试了此重新拆分(r'\.(?=)',text)但我的回复也有相同的问题!我试图寻找一个单行程序,而不是返回并附加句点,但如果没有其他解决方案,我会这样做。我只是感到惊讶的是,绝对没有办法告诉python不要删除分隔符……感谢您的回复!我试图寻找一个单行程序,而不是如果没有其他解决方案的话,我会这么做。我只是感到惊讶的是,绝对没有办法告诉python不要删除分隔符……因此,由于我的文本是生物文本,我才意识到它有时会在一个名称上分裂,例如“C.elegans”“。所以我想知道我怎么能告诉它只有在有句点的时候才拆分,后面跟一个空格,后面跟一个大写字母。很抱歉这个利基请求。我尝试了这个:re.split(r')(?我需要向后看+向前看,所以re.split(r'(?非常感谢!!我很难回头/回头看。我也很感谢你的快速回复!因此,由于我的文字是生物性的,我才意识到它有时会在一个名字上分裂,例如“C.elegans”.所以我想知道我怎么能告诉它只有在有句号的时候才拆分,后面跟一个空格,后面跟一个大写字母。对于这个利基请求,我很抱歉。我尝试了这个:re.split(r')(?我需要向后看+向前看,所以re.split(r')(?非常感谢!!我很难处理向后看/向前看的问题。我也很感谢你的快速回复!