1.元字元
注:在任意的元字元前加上反斜線,將失去其元字元意義,表示匹配它。
點號(.):匹配任意乙個字元,換行符(\n)除外。
反斜線(\):作為轉義字元。
2.量詞
星號(*):用於匹配前乙個條目零次或多次。
加號(+):表示匹配前乙個條目一次以上。
問號(?):表示匹配前乙個條目出現一次或零次。
花括號({}):用於表示重複次數。
eg:/(read)/ 表示read可以重複3到100次
/(read)/ 表示可以重複3到無窮次
/(read)/ 表示重複3次。
3.模式分組
圓括號(()):對字元進行串分組。
反向引用的寫法是在反斜線的後面跟上數字。應用反向引用來對前面最近的圓括號中的模式進行匹配。數字表示匹配第幾個括號。
eg:模式:/y(....) d\1 「yabba dabba d」 匹配正確。
模式:/y(.)(.)\2\1/ 匹配"abba"。
模式:/y((.)(.)\2\1)d\1/ 匹配「yabba dabba d」。
\g可以將\111變為\g11.其中n可以為負數,表示倒著數括號。
eg:模式:/(.)\g11/ 匹配成功"aa11"。
4.擇一匹配
豎線(|):表示要麼匹配左邊的內容,要麼匹配右邊的內容。
eg:模式:/fread(and|or)barney/ 只對freadandbarney和freadorbarney匹配成功。
5.字符集
方括號():表示只能對方括號中的字符集的乙個字元進行匹配。
連線符(-):可以用來表示範圍。
脫字元(^):表示字符集中的字元除外
eg:模式:/[adhjifeg]/ 對方括號中的8個字元中的乙個匹配。
模式:/[a-za-z]/ 對52個大小字母中的乙個進行匹配
6.字符集的簡寫
\d:表示乙個數字
\s:表示能匹配任意空白字元
\w:表示有[a-za-z0-9]組成的字元
\d:等同於[^\d]
\s:等同於[^\s]
\w:等同於[^\w]
7.定界符
可以選用任何成對的定界符。/read/是m/read/的縮寫。也可以運用其他的定界符表示,如:m,m[read],m,m,read,。
8.模式匹配修飾符
/i:表示大小寫無關。 eg:模式:/fred/i 對fred,fred等匹配成功。
/s:表示匹配任意字元,包含換行符。(需要和.號一起使用) eg:模式/bary.*fred/s 對「barydsfsdfds\nsdfds\ndffred」匹配成功。
/x:表示可以在模式中加入空白。 eg:模式:/-?[0-9]+\.?[0-9]*/ 等同於 /-? [0-9]+ \.? [0-9]*/x。
組合修飾符:可以將上面的多可修飾符放在一起。
9.錨位
給定錨位,可以讓模式從指定位置開始匹配。
\a:匹配字串的絕對開始。 eg:mi
\z:匹配字串的絕對末尾。 eg:mi
\z:匹配行尾,後面可以跟著換行符。
\b:單詞邊界錨位(由\w組成的單詞)。 eg:/\bfread\b/ 僅對fread匹配成功。
\b:表示非單詞錨位 。 eg:/\bsercd\b/ 對sercdfsd,sercdfdsd等匹配成功,對resercdfsd,sercd等匹配不成功。
10.繫結操作符=~
預設情況下的操作物件是$_,我們可以通過=~來對模式進行匹配。例如:if($sdfsd=~/sdfds/)....
11.模式的內插
正規表示式內部可以進行雙引號的內插。
12優先順序
1.圓括號(())具有最高優先順序,用於分組和捕獲。
2.第二級為量詞,用於表示重複次數。量詞有點號,問號,加號,花括號。
3.第**為錨位和序列。有:\a,\z,\z,^,$,\b,\b
4.第四級為豎線(|)。
5.最低階為原子。如:a,[abc],\d,\1,\g.
eg:/\aread|binray\z/ 表示要麼匹配以read開始的的字串,或者以binray結束的字串。
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...