我有XXXXXXX99
,我想用X(7)99
替换它,因为有7个X
字符后跟99
。
>>> import re
>>> s = "XXXXXXX99"
>>> re.sub(r"(X+)", "X(the count)", s)
'X(the count)99'
这两个:
>>> re.sub(r"(X+)", "X(" + len(\1) + ")", s)
>>> re.sub(r"(X+)", "X(" + len(\\1) + ")", s)
给予:SyntaxError: unexpected character after line continuation character
在一般情况下,字符串可能更复杂,例如XXXX99_999999XX99.99
。我将重点关注大于5的重复,这意味着这个例子将成为XXXX99_9(6)XX99.99
。
4条答案
按热度按时间3lxsmp7m1#
这是
itertools.groupby
更好地处理的事情:hsgswve42#
你可以在
len
中使用lambda函数:Code Demo
RegEx详情:
(.)
:匹配任意字符\1{4,}
:匹配相同字符的4个或更多重复oalqel3c3#
你可以试试这样的方法:
如果成功了告诉我。
guicsvcw4#