正規表示式

2022-01-12 10:36:52 字數 1155 閱讀 9160

今天翻硬碟,意外翻出來乙個學習筆記,開啟看看全是正規表示式的東西。應該是以前學寫shell的時候記錄的,搬到這裡吧

\b 不匹配單詞分隔符的任意乙個,只匹配位置

\bhi\b.*\blucy\b hi後面不遠處跟著乙個lucy

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

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

\s 匹配任意的空白符

\d 匹配數字

\b 匹配單詞的開始或結束

^ 匹配字串的開始

$ 匹配字串的結束

^\d$ qq號必須為5位到12位數字

* 重複零次或更多次

+ 重複一次或更多次

? 重複零次或一次

重複n次

重複n次或更多次

重複n到m次

\(?0\d[) -]?\d (010)88886666,或022-22334455,或02912345678

(分枝規則:如果滿足其中任意一種規則都應該當成匹配,具體方法是用|把不同的規則分隔開 匹配分枝條件時,會從左到右地測試每個條件,如果滿足了某個分枝的話,就不會去再管其它的條件)

分組 (\d\.)\d是乙個簡單的ip位址匹配表示式

((2[0-4]\d|25[0-5]|[01]?\d\d?)\.)(2[0-4]\d|25[0-5]|[01]?\d\d?) 正確的ip表示式

\w 匹配任意不是字母,數字,下劃線,漢字的字元

\s 匹配任意不是空白符的字元

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

\b 匹配不是單詞開頭或結束的位置

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

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

分類 **/語法 說明

捕獲 (exp) 匹配exp,並捕獲文字到自動命名的組裡

(?exp) 匹配exp,並捕獲文字到名稱為name的組裡,也可以寫成(?'name'exp)

(?:exp) 匹配exp,不捕獲匹配的文字,也不給此分組分配組號

零寬斷言 (?=exp) 匹配exp前面的位置

(?<=exp) 匹配exp後面的位置

(?!exp) 匹配後面跟的不是exp的位置

(?注釋 (?#comment) 這種型別的分組不對正規表示式的處理產生任何影響,用於提供注釋讓人閱讀

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

非負整數 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正規表示式 編寫正規表示式

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