我有一个像这样的字符串:
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/