簡體   English   中英

帶有*不匹配的python正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM