如何将一串相同字符合并为一个?
假设我有这样的内容:
My---sun--is------very-big---.
我想把所有连续的多个连字符替换成一个连字符。
10 个回答
5
如果你只是想把连字符合并在一起,可以参考其他的建议。否则,你可以自己写一个函数,像下面这样:
>>> def coalesce(x):
... n = []
... for c in x:
... if not n or c != n[-1]:
... n.append(c)
... return ''.join(n)
...
>>> coalesce('My---sun--is------very-big---.')
'My-sun-is-very-big-.'
>>> coalesce('aaabbbccc')
'abc'
13
如果你想替换掉任何连续出现的字符,可以使用
>>> import re
>>> a = "AA---BC++++DDDD-EE$$$$FF"
>>> print(re.sub(r"(.)\1+",r"\1",a))
A-BC+D-E$F
如果你只想合并那些不是字母和数字的字符,可以使用
>>> print(re.sub(r"(\W)\1+",r"\1",a))
AA-BC+DDDD-EE$FF
如果你只是想处理连字符,我推荐unutbu的解决方案。
19
import re
astr='My---sun--is------very-big---.'
print(re.sub('-+','-',astr))
# My-sun-is-very-big-.
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。