regular expression簡稱regex或regexp
3. 簡寫字符集
4. 標誌位
5. 斷言
正規表示式是一組由字母和符號組成的特殊文字,它可以用來從文字中找出滿足你想要的格式的句子。乙個正規表示式是一種從左到右匹配主體字串的模式。
正規表示式其實就是在執行搜尋時的格式,它由一些字母和數字組成。
例如:正規表示式the匹配字串the。
正規表示式123匹配字串123.
正規表示式是大小寫敏感的。
元字元不代表他們本身的字面意思,他們都有特殊的含義。
元字元描述
.句號匹配任意單個字元,除了換行符。
[ ]字元種類,匹配方括號內的任意字元。
[^ ]
否定的字元種類。匹配除了方括號裡的任意字元。
*匹配 >=0 個重複的在*之前的字元。
+匹配 >=1個重複的 + 號前的字元。
?標記?之前的字元為可選
匹配x個大括號之前的字元或字符集(n <= x <= m)
(xyz)
字符集,匹配與xyz完全相等的字串
|或運算子,匹配符號前或後的字元
\轉義字元,用於匹配一些保留的字元[ ] ( ) . * + ? ^ $ \ |
^從開始行開始匹配
$從末端開始匹配
.匹配任意單個字元,但不匹配換行符。
字符集也叫做字元類。
後面跟著元字元+ , * , ?
的,用來指定匹配子模式的次數。
*號*號匹配在*之前的字元出現大於等於0次。
*字元和.字元搭配可以匹配所有的字元。
*和表示匹配空格的符號\s連線起來用
+號+號匹配+號之前的字元出現 >= 1次。
?號?號標記在符號前面的字元為可選,即出現0或1次。
是乙個量詞,常用來限定乙個或一組字元可以重複出現的次數。
正規表示式中還提供了一種將表示式分組的機制,當使用分組時,除了獲得整個匹配,還能夠在匹配中選擇每乙個分組。
分組有乙個非常重要的功能——捕獲資料。當我們想要從匹配好的資料中提取關鍵資料的時候可以使用分組。
分組回溯
正規表示式還提供了一種引用之前的匹配分組的機制。有時候我們會尋找乙個子匹配,接下來該匹配會再次出現。
分組的回溯引用,使用\num可以引用編號為num的分組,從而使得後面分組的正則和前面分組的正則匹配相同的資料。
或,用作判斷條件。
反斜線 \ ,用於轉碼緊跟其後的字元。
想要匹配指定開頭或結尾的字串就要使用到錨點。^指定開頭,$指定結尾。
^號用來檢查匹配的字串是否在所匹配的字串的開頭。
$號用來檢查匹配的字串是否在所匹配的字串的結尾。
簡寫描述
.除換行符外的所有字元
\w匹配所有字母數字和下劃線,等同於[a-za-z0-9_]
\w匹配所有非字母數字,即符號,同[^\w]
\d匹配數字
\d匹配非數字
\s匹配所有空格字元,等同於[\t\n\f\r\p]
\s匹配所有非空格字元
\f匹配乙個換頁符
\n匹配乙個換行符
\r匹配乙個回車符
\t匹配乙個製表符
\v匹配乙個垂直製表符
\p匹配cr/lf(等同於\r\n),用來匹配dos行終止符
\b匹配乙個單詞邊界,也就是指單詞和空格間的位置
標誌也叫模式修正符,它可以修改表示式的搜尋結果。
標誌描述
i忽略大小寫
g全域性搜尋
m多行修飾符:錨點元字元^ $
工作範圍在每行的起始
斷言屬於非捕獲簇(不捕獲文字,也不針對組合進行計數),斷言僅作為約束。
斷言有以下四種:
正先行斷言-存在(?=)
負先行斷言-排除(?!)
正後行斷言-存在(?<=)
負後行斷言-排除(?
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...