python正規表示式

2021-10-12 08:41:32 字數 947 閱讀 5332

最近剛學習了python3 的re模組,對正規表示式有了初步的了解,試著寫了個**發現正規表示式怎麼一直不起作用。

結果發現是自己沒搞清楚re.match()、re.search()和re.findall()的區別。

re.match() 總是從字串「開頭」去匹配,並返回匹配的字串的match物件。所以當我用re.match()函式去匹配字串非開頭部分的字串時,會返回none。

str1 =

'hello world!'

print

(re.match(r'e'

,str1)

)

結果為:none

如果想查詢字串任意部分的模式出現位置請用re.search()或re.findall().

re.search()函式將對整個字串進行搜尋,並返回第乙個匹配的字串的match物件。

str1 =

'hello world!'

print

(re.search(r'e'

,str1)

)

輸出結果:

<_sre.sre_match object; span=(1, 2), match=『e』>

re.findall()函式將返回乙個所有匹配的字串的字串列表。

str1 =

'hello world!'

re.findall(r'e'

,str1)

輸出結果將是:

[『e』]

如果你想以迭代方式返回匹配,可以使用 finditer() 方法來代替。

ps:re.search()和re.match()函式返回match物件包括分組時,group(0)返回【完整匹配】的字串,group(1)及以上分別返回各分組字串。groups()函式返回各分組組成的元組物件。

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...