-->

在蟒蛇句末删除周期(Remove periods at the end of sentences i

2019-09-22 11:40发布

我有这样的句子 - “这是一个测试4.55和5000。” 我想在句末去除周期,而不是数字之间。 我的输出必须是 - “这是一个测试4.55和5000”我尝试了下面的选项,但没有得到所需要的输出:

wordList = "this is a test. 4.55 and 5,000."
pattern3 = re.compile("[^\w\d]+")
wordList = pattern3.sub(' ',wordList)

也试过低于2:

pattern3 = re.compile("[^\w]|^[0-9]\.[0-9]")
pattern3 = re.compile("[^\w]|^([0-9]/.[0-9]+)")

我不知道我要去的地方错了。 有人可以给我一些指点? 我搜索了前面的帖子和审判他们,但他们没有工作了我的情况。

Answer 1:

尝试负前瞻:

\.(?!\d)

这是什么比赛是不是后面跟着一个数字的任何时期。



Answer 2:

在正则表达式中, $特殊字符“[匹配]只是在字符串的结尾换行符之前的字符串或结束”

在这种情况下,假定每行只有一句,我建议如下:

\.$

这将匹配只发生在一个字符串(或用于多行字符串的线的端部)的端部段。 当然,如果你不能保证每行一个句子那么他们是不是你的解决方案。



Answer 3:

怎么样

pattern = re.compile(r'\.(\s)')
wordList = pattern.sub(r'\1', wordList)

这取代了一段时间,随后只用空间的空间。



文章来源: Remove periods at the end of sentences in python