import re
x = """ hi i am laughing like hahahahahahaha. and i use it regularly"""
y = re.compile(r'(ha){1,5}')
patlen = 2
target = str(x)
while True:
m = y.search(target)
if not m:
break
target = target[patlen + m.start(0):]
print(m.group(0))
输出
hahahahaha
hahahahaha
hahahahaha
hahahaha
hahaha
haha
ha
>>> x=""" hi i am laughing like hahahahahahaha. and i use it regularly"""
>>> import re
>>> y=re.compile(r'(ha){1,5}')
>>> z=y.search(x)
>>> z.group()
'hahahahaha'
re.search
最多找到一个匹配项。要查找多个匹配项,可以使用re.findall
,它返回匹配字符串的列表:输出
^{pr2}$如果需要实际匹配的对象而不是字符串,可以使用
^{3}$re.finditer
:输出
如果你想找到所有重复的模式,你需要一个稍微不同的策略。一种方法是使用
re.search
并在匹配点处剪切目标字符串并再次搜索,直到没有找到更多匹配项。在输出
因此,上述工作如预期:
正如您在声明中提到的,在{1,5}范围内搜索ha,并给您贪婪的匹配最大值到5。但是如果你想让它匹配所有发生的事情,那么你可以通过这个实现它(+是贪婪的)
^{pr2}$相关问题 更多 >
编程相关推荐