结果应该返回包含字母a到c和另一个字符的列表。
文本是aabbcc,我希望它能返回['a', 'a', 'b', 'b', 'c']。
import re
text = 'aabbcc'
result = re.findall(r'([a-c]).', text)
print(result)
但它返回['a', 'b', 'c']
使用一个非捕获性的 lookahead ([a-z](?=.)
). 这与你的基本相同,但没有捕获下一个字符。
要使它按照你的方式工作,只需要导入 regex
而不是 re
模块,并使用 overlapped
参数。
import regex
text = 'aabbcc'
result = regex.findall(r'([a-c]).', text, overlapped = True)
print(result)
打印。
['a', 'a', 'b', 'b', 'c']
否则,在评论和其他答案中提到的正面展望是一个选项。