python正则表达式,*不匹配

问题描述 投票:0回答:2

我正在学习python。我正在使用python 3.6

reObject = re.compile(r'(ab*)')
mo1 = reObject.search('My name is abbb')
print (mo1.group())

上面的代码只匹配'name'中的a而不是abbb

但是下面的代码匹配正确。

reObject = re.compile(r'(ab*)')
mo1 = reObject.search('My nme is abbb')
print (mo1.group())

如果字母出现在搜索字符串之前,如何匹配字符串?

python regex
2个回答
0
投票

http://www.rexegg.com/regex-quickstart.html是正则表达式的一个很好的资源

*字符表示找到0或更多,这将找到0 b的

+字符表示找到1或更多

所以(ab +)会找到abbb


0
投票

Regular Expression Syntax

*使得到的RE与前面RE的0次或更多次重复匹配,尽可能多次重复。 ab *将匹配'a','ab'或'a',后跟任意数量的'b'。

+使得到的RE匹配前一个RE的1次或多次重复。 ab +将匹配'a',后跟任何非零数字的'b';它不会只匹配'a'。

如果你担心为什么ab*只匹配第一个a,它在技术上没有。问题在于您如何使用该模式:re.search仅扫描第一场比赛。如果你想找到所有比赛,请看re.findall

© www.soinside.com 2019 - 2024. All rights reserved.