正規表示式:
官方定義: 正規表示式是對字串操作的一種邏輯公式, 就是事先定義好的一些有特定字元, 以及這些特定字元的組合, 組成乙個規則字串,次字串用來對字串進行過濾.
正規表示式只能和字串相關.
字元組: [ 字元組 ]
在同乙個位置上可能出現的各種字元組成乙個字元組,用 [ ] 表示, 字元可以有很多種 : 數字, 字母, 標點符號等
元字元匹配內容
. 匹配除換行符以外的其他任意字元
\w匹配數字字母下劃線
\s匹配任意空白符
\d匹配數字
\n匹配換行符
\t匹配製表符
\b匹配乙個單詞的結尾
^匹配字串的開始
$匹配字串的結束
\w匹配非數字字母下劃線
\s匹配非空白符
\d匹配非數字
a|b匹配a或匹配b
()匹配括號內的表示式,表示乙個組
[ ]匹配字元組內的字元
[^ ]
匹配除了字元組內的所有字元
量詞 :
量詞用法說明
*至少重複0次或者重複n次
+至少重複1次或者重複n次
?重複0次或者1次
重複n次
重複n次或者更多次
重複n到m次
貪婪匹配 :
在滿足匹配時,匹配盡可能長的字串,預設情況下,採用貪婪匹配
正則帶匹配字元
匹配結果
說明<.*>
....
....
預設為貪婪匹配,
會匹配符合匹配規則中最長的字串
<.*?>
....
表示式後加上?意思
將貪婪匹配轉換為非貪婪匹配,
會在符合匹配規則的情況下
盡量匹配最短的字串
非貪婪匹配 :
*?重複任意次,但會盡可能的少重複
+?重複一次或者更多次,但會盡可能的少重複
??重複0次或者1次,但會盡可能的少重複
?重複n到m次,但會盡可能的少重複
?重負n次後者更多次,但會盡可能的少重複
.*?的用法 :
. 是去任意字元
* 是取0到無窮
? 表示非貪婪模式
大多情況用在 : .*?x #意思就是去前面任意的任意字元,直到乙個x出現.
轉義符 \
正規表示式中,有很多有特殊意義的元字元,比如 : \d , \s等, 如果要在正則中匹配正常的 ' \d '而不是數字,就需要對 ' \ ' 進行轉義,變成 ' \\ '.
正則待匹配結果
匹配結果
說明\d
\dfalse
因為在正規表示式中 ' \ '是具有特殊意義的字元,要匹配 ' \d '本身,表示式 \d 無效
\\d\d
true
轉移 \ 後變成 \\ ,可以匹配
\\\\d
\\dtrue
python中,字串中的 \ 也需要轉義
r'\\d'
r'\d'
true
在字串前加 r, 讓整個字串不轉義
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...