正規表示式使用總結

2021-10-08 12:28:57 字數 2597 閱讀 5274

\b      並不匹配這些單詞分隔字元中的任何乙個,它只匹配乙個位置

.       匹配除了換行符以外的任意字元

*       *前面的內容可以連續重複使用任意次(即0次或多次)

?       ?前面的內容可以出現0次或1次

.*      匹配任意數量的不包含換行的字元

+      +前面的內容可以連續重複使用1次或多次(即1次或多次)

*?      匹配重複任意次,但盡可能少重複的字元

+?      匹配重複1次或更多次,但盡可能少重複的字元

??      匹配重複0次或1次,但盡可能少重複的字元

?      重複n到m次,但盡可能少重複

?      重複n次以上,但盡可能少重複

^      匹配你要用來查詢的字串的開頭

$      匹配結尾

匹配**現的任意乙個字元

[aeiou]      匹配任何乙個英文母音字母

[.?!]      匹配標點符號(.或?或!)

[^x]      匹配除了x以外的任意字元

[^aeiou]       匹配除了aeiou這幾個字母以外的任意字元

\d      匹配任意數字字元

\d      匹配任意非數字的字元

\d      匹配2個任意數字

\d      匹配2-5個任意數字

\d+      匹配1個或更多連續的數字

\w      匹配字母或數字或下劃線或漢字等

\w      匹配不是字母或數字或下劃線或漢字等

\s      匹配任意的空白符,包括空格,製表符(tab),換行符,中文全形空格等

\s      匹配任意的不是空白符,包括空格,製表符(tab),換行符,中文全形空格等

分枝條件:

|      有幾種規則,如果滿足其中任意一種規則都應該當成匹配,具體方法是用|把不同的規則分隔開

0\d-\d|0\d-\d 這個表示式能匹配兩種以連字型大小分隔的**號碼:一種是三位區號,8位本地號(如010-12345678),一種是4位區號,7位本地號(0376-2233445)

分組:()      用小括號來指定子表示式(也叫做分組),然後你就可以指定這個子表示式的重複次數了,你也可以對子表示式進行其它一些操作

貪婪匹配:

匹配盡可能多的字元

a.*b      它將會匹配最長的以a開始,以b結束的字串

非貪婪匹配:

匹配盡可能少的字元

.?      匹配任意數量的重複,但是在能使整個匹配成功的前提下使用最少的重複。

a.?b      匹配最短的,以a開始,以b結束的字串。如果把它應用於aabab的話,它會匹配aab(第一到第三個字元)和ab(第四到第五個字元)。

零寬斷言:

(?=exp)      也叫零寬度正**先行斷言,它斷言自身出現的位置的後面能匹配表示式exp。比如\b\w+(?=ing\b),匹配以ing結尾的單詞的前面部分(除了ing以外的部分),如查詢i』m singing while you』re dancing.時,它會匹配sing和danc。

(?<=exp)      也叫零寬度正回顧後發斷言,它斷言自身出現的位置的前面能匹配表示式exp。

比如  (?<=\bre)\w+\b   會匹配以re開頭的單詞的後半部分(除了re以外的部分),例如在查詢reading a book時,它匹配ading。

(?<=\s)\d+(?=\s)       匹配以空白符間隔的數字(再次強調,不包括這些空白符)

python中的re模組函式:

第乙個引數pattern是正規表示式字串或正規表示式物件

第二個引數string是要跟正規表示式做匹配的字串物件

compile(pattern, flags=0)      編譯正規表示式返回正規表示式物件

match(pattern, string, flags=0)      用正規表示式匹配字串 成功返回匹配物件 否則返回none

search(pattern, string, flags=0)      搜尋字串中第一次出現正規表示式的模式 成功返回匹配物件 否則返回none

split(pattern, string, maxsplit=0, flags=0)      用正規表示式指定的模式分隔符拆分字串 返回列表

sub(pattern, repl, string, count=0, flags=0)      用指定的字串替換原字串中與正規表示式匹配的模式 可以用count指定替換的次數

fullmatch(pattern, string, flags=0)      match函式的完全匹配(從字串開頭到結尾)版本

findall(pattern, string, flags=0)      查詢字串所有與正規表示式匹配的模式 返回字串的列表

finditer(pattern, string, flags=0)      查詢字串所有與正規表示式匹配的模式 返回乙個迭代器

purge()      清除隱式編譯的正規表示式的快取

re.i / re.ignorecase       忽略大小寫匹配標記

re.m / re.multiline      多行匹配標記

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式使用總結

匹配年月日 0 9 1 9 0 9 1 9 0 9 0 9 1 9 0 9 1 9 0 9 0 13578 1 02 0 1 9 12 0 9 3 01 0 469 11 0 1 9 12 0 9 30 02 0 1 9 1 0 9 2 0 8 匹配中文 u4e00 u9fa5 匹配雙位元組字元,包...

正規表示式 使用總結

1 匹配a標籤 2 正則匹配頁面所有a標籤或img標籤 public static arraylist cutstr string sstr,string patrn catch system.exception ex return al matchcollection物件取group的方法很好用。...