我正在学习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())
如果字母出现在搜索字符串之前,如何匹配字符串?
http://www.rexegg.com/regex-quickstart.html是正则表达式的一个很好的资源
*字符表示找到0或更多,这将找到0 b的
+字符表示找到1或更多
所以(ab +)会找到abbb
*使得到的RE与前面RE的0次或更多次重复匹配,尽可能多次重复。 ab *将匹配'a','ab'或'a',后跟任意数量的'b'。
+使得到的RE匹配前一个RE的1次或多次重复。 ab +将匹配'a',后跟任何非零数字的'b';它不会只匹配'a'。
如果你担心为什么ab*
只匹配第一个a
,它在技术上没有。问题在于您如何使用该模式:re.search
仅扫描第一场比赛。如果你想找到所有比赛,请看re.findall
。