正規表示式

2022-03-16 22:43:03 字數 3263 閱讀 9479

正則是一門獨立的語法,python沒有關係

正規表示式就是設定好規則,來處理字串,語法包含元字元,量詞,特殊方法和現象

1,元字元:

字元組:         [^]    |    ()

在同一位置可能出現的各種字元組成的字元組,在正規表示式中用表示,注意只能判斷乙個位置的字元,中的內容,依據ascii表中的順訊,從小到大排列

[0-9] 找到字串中的數字                 [a-z]找到字串中的小寫字母[a-z]找到字串中的大寫字母[0-9a-za-z]表示16進製字元

[^..]匹配除了字元組中字元的所有字元          [...]匹配字元組中的字元                 a|b    匹配a或b            ()匹配括號內的表示式,也表示乙個組

\w  \d  \s(\n,\t)       \w  \d   \s  :

\w    匹配字元中的數字,字母,下劃線          \w    匹配非數字,非字母,非下劃線

\d    匹配數字                                            \d    匹配非數字

\s  匹配空百符, 回車,空格,tab                   \s   匹配非空格,非回車,非tab

^  $:

^  匹配字串的開始                                 $   匹配字串的結尾

.  :

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

2,量詞:

? + *

?    重複0次或1次             +    重複1次或多次             *  重複0次或多次

重複n次                     重複n次或多次               重複n到m次

常用的組合用法:

(1)高.   ===>匹配所有 高x                 ^高   ===> 只從開頭匹配  高x                高$   ===>  只從末尾匹配  高x

(2) 高.?  ===>先取高,再取乙個字元0次(不取)或取1次       高.+  ===>先取高,再取乙個字元(至少一次)或取多次       高.*  ==>先取高,再取乙個字元0次(不取)或多次

高.  ==>  取1到2次任意字元      高.*?       ===>      惰性匹配

(3)字符集:       高[用永傑帥帶了]*    匹配高後面[用永傑帥帶了]任意次              高[永傑]*    匹配不是永傑的字元任意次          [\d]  匹配任意乙個數字    [\d]+  匹配任意個數字

(4)        在python中                 *****=>         \   一般都有轉義的含義,所以一般在字串的前面加r,就能轉義成  '純的'  字串            如:r'\\n'      r'\n'

在正則中的含義              *****=>          '\('  表示匹配小括號    '\-'  表示減法           [()+*?/$.]   在字元組中一些特殊的字元會現出原形

(5)   .*  ===>  預設是貪婪模式,會匹配盡量長的字串                      高.?帥            ===>從高到帥之間的字元,惰性匹配,回溯演算法

.*?     ===>   轉換為非貪婪模式,會匹配盡量短的字串              .*?x     ===>取前面任意長度的字元,直到x出現,停止

(6)   *?   重複任意次,但盡可能少重複

*?   重複任意次,但盡可能少重複

+?   重複1次或更多次,但盡可能少重複

??   重複0次或1次,但盡可能少重複

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

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

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

非負整數 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...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...