[英]python regular expression with * not matching
我正在學習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是regex的好資源
*字符表示找到0或更多,這將找到帶有0 b的a
+字符表示找到1個或多個
所以(ab +)將找到abbb
請參見正則表達式語法 。
*使結果RE與前面的RE的0個或多個重復匹配,並盡可能多地重復。 ab *將匹配“ a”,“ ab”或“ a”,后跟任意數量的“ b” 。
+使結果RE匹配先前RE的1個或多個重復 。 a b +將匹配“ a”,后跟任意非零數目的“ b” ; 它不會僅匹配“ a”。
如果您擔心為什么ab*
僅匹配第一個a
,那么從技術上講它不匹配。 問題在於您如何使用模式: re.search
僅掃描第一個匹配項。 如果要查找所有匹配項,請查看re.findall
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.