python之路 正規表示式

2021-08-16 08:42:43 字數 2029 閱讀 4563

正規表示式:

是乙個字串行,它能幫助你方便的檢查乙個字串是否與某種模式匹配,

它的設計思想是用一種描述性的語言來給字串定義乙個滾則,凡是符合規則的字串,我們就認為它「匹配了」,否則,該字串就是「不合法的」。

在python中使用正規表示式匯入,

import re

模組

re的匹配語法有以下幾種:

1、re.match  從頭開始匹配

2、re.search  匹配包含

3、re.findall  把所有匹配到的字元放到以列表中的元素返回

4、re.split 以匹配到的字元當做列表分隔符

5、re.sub 匹配字串替換

6、re.fullmacth 全部匹配

re模組常用表示式的規則

「. 」:預設匹配除\n以外的任意乙個字元,若指定 flags dotall,則匹配任意字元,包括換行。

「^」:

匹配字元開頭,若指定 flags multline,這種也可以匹配上(r"^a","\nabc\neee",flags = re.multline)

「$」:

匹配字元結尾,若指定 flags multline,re.search('foo.$','foo1\nfoo2\n',re.multline).group()會匹配到foo1

「*」:匹配*號前的字元0次或多次,re.search('a*','aaaabac')結果'aaaa'

「+」:

匹配前乙個字元1次或多次,re.findall("ab+","ab+cd+abb+bba")結果['ab','abb']

「?」:匹配前乙個字元1次或0次,re.search('b?','alex').group()匹配b 0次

「」:匹配前乙個字元m次,re.search('b','alexbbbs').group()匹配到'bbb'

「」:匹配前乙個字元n到m次,re.findall("ab","abb abc abbcbbb")結果'abb','ab','abb'

「|」:匹配|左或|右的字元,re.search("abc|abc","abcbabccd").group()結果'abc'

「(...)」:分組匹配,re.search("(abc)a(123|45)","abcabca456c").group()結果為'abcabca45'

「\a」:只從字元開頭匹配,re.search("\aabc","alexabc")是匹配不到的,相當於re.match('abc',"alexabc")或^

「\z」:匹配字元結尾,同$

「\d」:匹配數字0-9

「\d」:匹配非數字

「\w」:匹配[a-za-z0-9]

「\w」:匹配非[a-za-z0-9]

「\s」:匹配空白字元、\t、\n、\r、,re.search("\s+","ab\tc1\n3").group()結果'\t'

「(?p...)」:分組匹配:re.search("(?p[0-9])(?p[0-9])(?p[0-9])","652322199103304014").groupdict("city")結果

注:匹配模式有兩種

1、貪婪匹配:正規表示式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。

2、非貪婪匹配:就是匹配到結果就好,就少的匹配字元。

rhce之路 正規表示式

1.什麼是正規表示式?要想管理好主機,任何一名有經驗的系統管理員都會告訴你,正規表示式很重要 為什麼重要呢?因為在日常的管理主機的過程中,主要的就是處理文字字元,而正規表示式恰恰是處理文字所離不開的工具。總之,正規表示式就是處理字串的方法,以行為單位進行字串的處理,通過一些特殊符號的輔助,可以讓使用...

Python學習之路(八)正規表示式

1 概述 python裡面的正規表示式和其它語言的正規表示式基本一致。在python裡面我們使用re模組進行正則的匹配查詢等的相關操作 2 簡單使用 import re 匯入re模組 result re.match r hello hellow if result is not none print...

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

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