如何将一系列相同的字符合并成一个字符?

2024-04-23 18:14:17 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这个:

我的太阳非常大。在

我想用一个连字符替换所有多个连字符。在


Tags: 字符
3条回答
import re

astr='My---sun--is------very-big---.'

print(re.sub('-+','-',astr))
# My-sun-is-very-big-.

如果要替换连续字符的任何运行,可以使用

>>> import re
>>> a = "AA---BC++++DDDD-EE$$$$FF"
>>> print(re.sub(r"(.)\1+",r"\1",a))
A-BC+D-E$F

如果只想合并非单词字符,请使用

^{pr2}$

如果真的只是连字符,我推荐unutbu的解决方案。在

如果您真的只想合并连字符,请使用其他建议。否则,您可以编写自己的函数,如下所示:

>>> 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'

相关问题 更多 >