正規表示式-語法
字元
描述
舉例
^^號匹配字串的開頭(一行);
在[ ]中使用的時候,表示不接受該字元集合
^123:匹配以123開頭的字串
[^a-z]:匹配a-z以外的字符集
$$號匹配字串的結尾(一行)
abc$:匹配以abc結尾的字串
\a代表輸入的開始位置(一段,不是一行)
\z代表輸入的結束位置(一段,不是一行)
++號前面的字元必須至少出現1次或多次
runoo+b:可匹配runoob/runooob/runooooooob
**號前面的字元至少出現0次、1次或多次
runoo*b:可匹配runob/runoob/runooooooob
??號前面的字元最多只能出現一次;
當該字元緊跟在其他限定符(*,+,?,,)後面時,匹配模式是非貪婪的,即盡可能少的匹配所搜尋的字串
colou?r:可匹配color/colour
o+?:匹配單個字元o,而o+才匹配多個o
.匹配單個任意字元,
要匹配包括 '\n' 在內的任何字元,請使用像"
(.|\n)
"的模式。
匹配前乙個字元n次
o:匹配"food"中的兩個o
匹配前乙個字元至少n次
匹配前乙個字元n到m次
\d數字
\d非數字
\s空格
\s非空格
\w匹配字母、數字、下劃線字元,等價於:[a-za-z0-9_]
\w匹配非字母、數字、下劃線字元,等價於:[^a-za-z0-9_]
\b匹配字邊界處的字元,即字與空格間的位置
\bapt匹配aptitude中的apt
\b非字邊界匹配
\bapt匹配chapter中的apt
\num
後向引用,num是乙個正整數,
對所獲取的匹配的引用
.*?\1
>:\
1代表前面的子模式([1-6])的匹配結果
x|y匹配x或y
[a-z]
匹配字元範圍,如:字母a-z
(pattern)
圓括號,匹配pattern子模式,並獲取這一匹配結果,可用於後向引用
(?:pattern)
匹配pattern但不獲取這一結果,不能用於後向引用
(?=pattern)
正向預查,
在任何匹配 pattern 的字串開始處匹配查詢字串(非獲取匹配,僅作為條件限制)
windows (?=95|98|nt|2000)' 能匹配 "windows 2000" 中的 "windows" ,但不能匹配 "windows 3.1" 中的 "windows
(?!pattern)
負向預查,在任何不匹配 pattern 的字串開始處匹配查詢字串(非獲取匹配,僅作為條件限制)
'windows (?!95|98|nt|2000)' 能匹配 "windows 3.1" 中的 "windows",但不能匹配 "windows 2000" 中的 "windows"
\f匹配乙個換頁符
\n匹配乙個換行符
\r匹配乙個回車符
\t匹配乙個製表符
\v匹配乙個垂直製表符
\xn匹配 n,其中 n 為十六進製制轉義值,十六進製制轉義值必須為確定的兩個數字長
'\x41' 匹配 "a"
\n標識乙個八進位制轉義值或乙個向後引用。如果 \n 之前至少 n 個獲取的子表示式,則 n 為向後引用。否則,如果 n 為八進位制數字 (0-7),則 n 為乙個八進位制轉義值。
\nm標識乙個八進位制轉義值或乙個向後引用。如果 \nm 之前至少有 nm 個獲得子表示式,則 nm 為向後引用。如果 \nm 之前至少有 n 個獲取,則 n 為乙個後跟文字 m 的向後引用。如果前面的條件都不滿足,若 n 和 m 均為八進位制數字 (0-7),則 \nm 將匹配八進位制轉義值 nm。
\nml
如果 n 為八進位制數字 (0-3),且 m 和 l 均為八進位制數字 (0-7),則匹配八進位制轉義值 nml。
\un匹配 n,其中 n 是乙個用四個十六進製制數字表示的 unicode 字元。
漢字:^[\u4e00-\u9fa5]$
正規表示式-運算子優先順序
優先順序由高到低排序為:
運算子
描述
\轉義符
(),(?:),(?=),
圓括號和方括號
*,+,?,,,
限定符^,$,\任何元字元、任何字元
定位點和序列(即:位置和順序)
|替換,"或"操作
字元具有高於替換運算子的優先順序,使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",請使用括號建立子表示式,從而產生"(m|f)ood"。
常用的正規表示式
1、長度為8-10的使用者密碼(以字母開頭、數字、下劃線)
^[a-za-z]\w$
2、驗證輸入只能是漢字 :
^[\u4e00-\u9fa5]$
3、電子郵箱驗證:
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
4、url位址驗證:
5、簡單的身份證號驗證:
\d|\d$
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...