簡單來說,正規表示式是用來對字串做處理的。它定義了字串的乙個「模型」,符合這個模型的字串將被匹配/篩選
直接上語法規則比較枯燥,先用乙個例子來體會一下:
匹配的字串:「hello world」完整介紹:正規表示式:「h…llo"
("."表示任意除換行符以外的字元)
匹配結果:「hello」
殘缺版重點:
完整版太長了,總結一下,一般情況常用的幾個:
字元類語法
解釋模式
字串.匹配除換行符「\n「以外的字元
hell… .orld
hello! world
[…]字符集,相當於乙個列表集合,可以代替集合中的任意元素
xi[xia]xi
xixxi/xiixi
\d數字
6\d6
666\w
單詞str\wng
strong
數量類語法
解釋模式
字串*[0,)
23*23333
[m , n]一般模式
23233333/2333/23333
定位符類語法
解釋模式
字串^定位首位(多行定位,每一行開頭)
^hoho\nho匹配出兩個ho
$定位末尾(多行定位,每一行末尾)
niu$
niuni無法匹配,因為niu不在末尾
分組類
每個正規表示式可以作為乙個分組使用『()』括起來,通過連線詞等形式組合在一起,變成更長的正規表示式。
正規表示式允許為該分組命名,並引用之前定義過的分組。
python re模組用於處理正規表示式
原生字串對應python中的pattern
#r代表後面的字串為正規表示式,用於避免語言和正規表示式之間的反斜槓問題
pattern = re.
compile
(r'hello'
)
擁有pattern後,python將其傳入re模組,對正規表示式模式進行處理
re模組提供一下幾種方法:
re.match(pattern, string[
, flags]
)#match是檢測傳入的string是否符合這個模式,且是從頭開始匹配
re.search(pattern, string[
, flags]
)#search是搜尋string中符合模式的部分,呼叫group()返回匹配的列表
re.split(pattern, string[
, maxsplit]
)#模式作為分割符將string進行分割,返回分割後的列表
re.findall(pattern, string[
, flags]
)#搜尋string,以列表形式返回全部能匹配的子串
re.finditer(pattern, string[
, flags]
)#搜尋string,返回乙個順序訪問每乙個匹配結果(match物件)的迭代器
re.sub(pattern, repl, string[
, count]
)#替換匹配到的所有子串為指定內容,並返回整個字串
re.subn(pattern, repl, string[
, count]
)
常用舉例:search:
result = re.search(r"\d+"
,"送你999朵花"
)# match預設從開頭匹配,search不要求從開頭匹配,如果正規表示式中加入^表示從開頭匹配,那麼search與match相同。
if result:
print
(result.group())
# 999 自會匹配第乙個 (findall匹配所有,返回列表)
else
:print
("未找到"
)
findall
result = re.findall(r"\d+"
,"送你999多花,老鐵雙擊666"
)# search只匹配第乙個,findall匹配所有(返回列表)
if result:
print
(result)
# ['999', '666']
else
:print
("未找到"
)
spilt
result = re.split(r":| "
,"1:李華 12 歲"
)# 切割,根據冒號:或者空格切割,返回列表
print
(result)
# ['1', '李華', '12', '歲']
sub
# sub替換 替換成固定字串
result = re.sub(r"996"
,"早9晚9上6天"
,"現在網際網路實行996,甚至007"
)# 替換匹配到的所有,並返回整個字串。
print
(result)
# 在網際網路實行早9晚9上6天,甚至007
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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...