我正在学习python。我使用的是python 3.6
reObject = re.compile(r'(ab*)')
mo1 = reObject.search('My name is abbb')
print (mo1.group())
以上代码仅匹配{名称'中的a
而不是abbb
但是下面的代码匹配正确。
reObject = re.compile(r'(ab*)')
mo1 = reObject.search('My nme is abbb')
print (mo1.group())
如果字母出现在搜索字符串之前,如何匹配字符串?
答案 0 :(得分:0)
http://www.rexegg.com/regex-quickstart.html是正则表达式的好资源
*字符表示找到0或更多 这将找到一个0 b'
+字符表示找到1个或更多
所以(ab +)会找到abbb
答案 1 :(得分:0)
* 使得到的RE与前面RE的 0或更多重复匹配,尽可能多的重复。 ab *将匹配'a','ab'或'a',后跟任意数量的'b 。
+ 导致生成的RE与前一个RE的 1次或更多次重复匹配。 a b +将匹配'a',后跟任何非零数字'b's ;它不会只匹配'a'。
如果您担心为什么ab*
仅与第一个a
匹配,那么它在技术上并不存在。问题在于您如何使用该模式:
re.search
仅扫描第一场比赛。如果您想查找所有匹配项,请查看re.findall
。