python - 正则表达式删除分号和句号之间的字符

标签 python regex

如何编写正则表达式来删除分号后面的单词,直到它到达第一个句点标记?

例如:

try to be nice; underastand people. start fresh.

我想删除“理解人”并添加类似的内容

try to be nice. start fresh

这是我的正则表达式,但遗憾的是它不起作用:

sentence = ''.join(re.sub(r';.*?.', '.', sentence))

谢谢!

最佳答案

您忘记转义点:r';.*?\.'。另外,这里不需要join任何东西,您将一个字符串传递给re.sub,然后您会得到一个字符串。

A r';[^.]+' 正则表达式似乎更好,因为它会匹配 ; 和 1+ 个字符而不是文字点(所以,你可以替换为空字符串):

import re
sentence = "try to be nice; underastand people. start fresh."
sentence = re.sub(r';[^.]+', '', sentence)
print(sentence)
# => try to be nice. start fresh.

请参阅Python demo

关于python - 正则表达式删除分号和句号之间的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41042439/

相关文章:

python - xCode 上的 Python 代码辅助

python - 如何编写代码来自动完成单词和句子?

python - theano.function - 它是如何工作的?

javascript - 正则表达式 if else 语句失败

c# - 从 .NET 正则表达式对象获取命名组子模式

python - 存储在变量中时找不到正确的文件

python - 从文本文件读取时的 Unicode 编码

javascript - 为什么正则表达式在其匹配中包含空格

java - MySQL 中的 REGEXP 返回不需要的值

ruby - 在 replace.gsub 中使用变量替换