Python 正則匹配問題

2021-09-02 06:36:34 字數 967 閱讀 2741

前幾天,在用python正則做乙個匹配關鍵字的事情, 發現了一些問題,順便提供一些解決方法。

使用的是python re module

re.search 與 re.match的區別

re.match() 函式

總是從字串『開頭匹配',並返回匹配的字串的 match 物件 。

re.search 函式

對整個字串進行搜尋匹配,返回第乙個匹配的字串的 match 物件。

>>> print(str2)

match連續3次

>>> pattern.search(str2)

<_sre.sre_match object at 0x1006fbed0>

>>> pattern.match(str2)

可以看出search可以匹配,而match卻匹配不上。

需要匹配的 連續多少次。或者 連續次數 

>>> import re

>>> pattern = re.compile("連續.次")

>>> str = "連續3次"

>>> pattern.search(str)

>>>

上面寫的正規表示式,看起來沒什麼問題,但沒有匹配上,原因卻很簡單,就是因為 中間多了乙個空格,刪掉後就可以了。

>>> pattern = re.compile("連續.次")

>>> pattern.search(str)

<_sre.sre_match object at 0x1006fbed0>

re.compile(pattern, flags=0)中設定flags=re.dotall可以是 . 匹配符忽略換行符,進行多行匹配。

Python3 正則匹配問題

python3通過re模組提供對正規表示式的支援。使用re的一般步驟是先將正規表示式的字串形式編譯為pattern例項,然後使用pattern例項處理文字並獲得匹配結果 乙個match例項 最後使用match例項獲得資訊,進行其他的操作。舉個例子 import re pattern re.compi...

正則匹配 Python

1.1 0 1 個字元1.2 放在末尾,兩個對等字元之間 對等字元 所有稱得上是括號的字元 左右對稱 所有非括號字元 自對稱 最小對等字元匹配 比如 匹配下文 最小結果只有順帶地,當有多個匹配結果時,m re.search m.group n 返回第n組括號匹配的字元。只需要一組結果時,用m.gro...

Python正則匹配

使用re模組 首先生成乙個匹配模式pattern,如pattern test 然後使用re.match pattern,str 或者search 匹配呼叫 match跟search的區別 match 函式試圖從字串的起始部分對模式進行匹配。如果匹配成功救返回乙個匹配物件 如果匹配失敗,就返回none...