首先讓我們看兩個特殊的符號
'^'和
'$'。他們的作用是分別指出乙個字串的開始和結束。例子如下:
"^the"
:表示所有以
"the"
開始的字串(
"there"
,"the cat"
等);"of despair$"
:表示所以以
"of despair"
結尾的字串;
"^abc$"
:表示開始和結尾都是
"abc"
的字串
——呵呵,只有
"abc"
自己了;
"notice"
:表示任何包含
"notice"
的字串。
象最後那個例子,如果你不使用兩個特殊字元,你就在表示要查詢的串在被查詢串的任意部分
——你並
不把它定位在某乙個頂端。
其它還有
'*',
'+'和
'?'這三個符號,表示乙個或一串行字元重複出現的次數。它們分別表示
「沒有或更多」
,「
一次或更多」還有
「沒有或一次
」。下面是幾個例子:
"ab*"
:表示乙個字串有乙個
a後面跟著零個或若干個b。(
"a", "ab", "abbb",……
);"ab+"
:表示乙個字串有乙個
a後面跟著至少乙個
b或者更多;
"ab?"
:表示乙個字串有乙個
a後面跟著零個或者乙個b;
"a?b+$"
:表示在字串的末尾有零個或乙個
a跟著乙個或幾個b。
你也可以使用範圍,用大括號括起,用以表示重複次數的範圍。
"ab"
:表示乙個字串有乙個a跟著
2個b(
"abb"
);"ab"
:表示乙個字串有乙個
a跟著至少2個
b;
"ab"
:表示乙個字串有乙個a跟著
3到5個
b。
請注意,你必須指定範圍的下限(如:
""而不是
"")。還有,你可能注意到了,
'*',
'+'和
'?'相當於"",
""和""。
還有乙個
'¦',表示「或
」操作:
"hi¦hello"
:表示乙個字串裡有
"hi"
或者"hello"
;"(b¦cd)ef"
:表示"bef"
或"cdef"
;"(a¦b)*c"
:表示一串
"a""b"
混合的字串後面跟乙個
"c";
'.'可以替代任何字元:
"a.[0-9]"
:表示乙個字串有乙個
"a"後面跟著乙個任意字元和乙個數字;
"^.$"
:表示有任意三個字元的字串(長度為
3個字元);
方括號表示某些字元允許在乙個字串中的某一特定位置出現:
"[ab]"
:表示乙個字串有乙個
"a"或
"b"(相當於
"a¦b"
);"[a-d]"
:表示乙個字串包含小寫的
'a'到
'd'中的乙個(相當於
"a¦b¦c¦d"
或者"[abcd]"
);"^[a-za-z]"
:表示乙個以字母開頭的字串;
"[0-9]%"
:表示乙個百分號前有一位的數字;
",[a-za-z0-9]$"
:表示乙個字串以乙個逗號後面跟著乙個字母或數字結束。
你也可以在方括號裡用
'^'表示不希望出現的字元,
'^'應在方括號裡的第一位。(如:
"%[^a-za-z]%"
表示兩個百分號中不應該出現字母)。
為了逐字表達,你必須在
"^.$()¦*+?{/"
這些字元前加上轉移字元
'/'。
請注意在方括號中,不需要轉義字元。
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...