python中的正则表达式*

3 python expression

我首先遇到python正则表达式的一些问题

import re
Run Code Online (Sandbox Code Playgroud)

然后我跑了几个测试

>>> 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
Run Code Online (Sandbox Code Playgroud)

你们知道为什么最后一个什么都没有?我也期待着iiiiiiiiiiiiiiiiiiii.

Puf*_*GDI 5

因为*前面的元素是零或更多.

match = re.search(r'i+', "piiiiiiiiiiiiiiiiiiiig")
match.group()
Run Code Online (Sandbox Code Playgroud)

输出:

'iiiiiiiiiiiiiiiiiiii'
Run Code Online (Sandbox Code Playgroud)

更新

*相当于{0,}.当它找到时p,它满足要求0 i.

所以它返回null字符.