python - 正则表达式替换字符串末尾的 '...'

标签 python regex string

我有一个像这样的字符串:

text1 = 'python...is...fun...'

我想将多个“.”替换为一个“.”仅当它们位于字符串末尾时,我希望输出为:

python...is...fun.

所以当只有一个“.”时位于字符串末尾,则不会被替换

text2 = 'python...is...fun.'

输出与text2相同

我的正则表达式是这样的:

text = re.sub(r'(.*)\.{2,}$', r'\1.', text)

我想匹配任何字符串,然后是'.'的{2到n}在字符串末尾,但输出是:

python...is...fun..

有什么想法可以做到这一点吗? 提前谢谢!

最佳答案

你让它变得有点复杂,你可以通过使用正则表达式作为 \.+$ 轻松做到这一点并将正则表达式模式替换为单个 .性格。

>>> text1 = 'python...is...fun...'
>>> new_text = re.sub(r"\.+$", ".", text1)
>>> 'python...is...fun.'

您可以进一步扩展此正则表达式来处理输入如 ... 的情况。仅等,但主要概念是无需计算 . 的数量,正如您在回答中所做的那样。

关于python - 正则表达式替换字符串末尾的 '...',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42242484/

相关文章:

php - Strpos 找不到特殊字符

python - 带冒号的函数参数

python - 在django中导入两个同名的模块?

javascript - 你如何用空格和标点符号分割 javascript 字符串?

c++ - 如何将 std::string 的实例转换为小写

javascript - 从可变 HTML 结果中解析特定字符串

python - 将多个 csv 文件读取到单独的 pandas 数据帧中

python - 表示 SQLAlchemy 中偏移日期的混合属性

c# - 提高正则表达式效率

java - 正则表达式删除除字符和数字之外的所有内容