python中的正则表达式*

2024-06-16 10:28:43 发布

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

我对python正则表达式有点问题 第一

import re

然后我做了一些测试

>>> match = re.search(r'\w*i', "piiiiiiiiiiiiiiiiiiiip")
>>> print match.group()
>>>piiiiiiiiiiiiiiiiiiii


>>> match = re.search(r'i*i', "piiiiiiiiiiiiiiiiiiiip")
>>> print match.group()
>>>iiiiiiiiiiiiiiiiiiii

>>> match = re.search(r'i*', "iiiiiiiiiiiiiiiiiiiip")
>>> print match.group()
>>>iiiiiiiiiiiiiiiiiiii

>>>match = re.search(r'i*', "piiiiiiiiiiiiiiiiiiiig")
>>>print match.group()

>>> and got nothing

你们知道为什么最后一个一无所获吗? 我也在等着呢。你知道吗


Tags: andimportresearchmatchgroupprintgot
2条回答

不要轻视正则表达式是“贪婪的”,除非有一个?在正确的地方,i*匹配在开始的p之前,因为有0 i。因为这算是一个匹配,搜索不会继续。你知道吗

因为*是前面元素的零或更多。你知道吗

match = re.search(r'i+', "piiiiiiiiiiiiiiiiiiiig")
match.group()

输出:

'iiiiiiiiiiiiiiiiiiii'

更新

*等价于{0,}。当它找到p时,它满足要求0i。你知道吗

所以它返回空字符。你知道吗

相关问题 更多 >