Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拆分句点时不删除句点标点-Python_Python_Regex_Split - Fatal编程技术网

拆分句点时不删除句点标点-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')(?非常感谢!!我很难处理向后看/向前看的问题。我也很感谢你的快速回复!