捕获重复的字符并使用Python进行拆分

时间:2017-12-08 14:25:15

标签: python regex

我需要使用重复的字符拆分字符串。

例如:

我的字符串是" howhowhow"

我需要输出'如何,如何,如何'。

我无法使用'如何'直接在我的reg exp。因为我的输入有所不同我应检查字符串是否重复该字符并需要拆分该字符。

3 个答案:

答案 0 :(得分:2)

import re

string = "howhowhow"

print(','.join(re.findall(re.search(r"(.+?)\1", string).group(1), string)))

<强>输出

howhowhow -> how,how,how
howhowhowhow -> how,how,how,how
testhowhowhow -> how,how,how  # not clearly defined by OP

该模式非贪婪,因此howhowhowhow不会映射到howhow,howhow,这也是合法的。如果您更喜欢最长的匹配,请删除?

答案 1 :(得分:0)

lengthofRepeatedChar = 3
str1 = 'howhowhow'
HowmanyTimesRepeated = int(len(str1)/lengthofRepeatedChar)
((str1[:lengthofRepeatedChar]+',')*HowmanyTimesRepeated)[:-1]
'how,how,how'

作品当你知道重复字符的长度时

答案 2 :(得分:-1)

使用re:

re.findall("how", "howhowhowhow")
# ['how', 'how', 'how', 'how']

如果您有多次重复,可以使用re.split()

[x for x in re.split(r"(how)", "howhowhowhow", 2) if x != '']
# ['how', 'how', 'howhow']