例如:^(-?\d)(\.\d)?$ 小數點前最多10位,小數點後最多三位小數,允許為負值
正規表示式
就是用於描述規則的工具。換句話說,正規表示式就是記錄文字規則的**。
元字元.
匹配除換行符以外的任意字元
\w匹配字母或數字或下劃線或漢字
\s匹配任意的空白符
\d匹配數字
\b匹配單詞的開始或結束
^匹配字串的開始
$匹配字串的結束
元字元^
(和數字6在同乙個鍵位上的符號)和
$都匹配乙個位置,這和
\b有點類似。
^匹配你要用來查詢的字串的開頭,
$匹配結尾。這兩個**在驗證輸入的內容時非常有用,比如乙個**如果要求你填寫的qq號必須為5位到12位數字時,可以使用:
^\d$
。如果你想查詢元字元本身的話,比如你查詢
.,或者
*,就出現了問題:你沒辦法指定它們,因為它們會被解釋成別的意思。這時你就得使用
\來取消這些字元的特殊意義。因此,你應該使用\.和
\*。當然,要查詢
\本身,你也得用\\.
例如:deerchao\.net
匹配deerchao.net
,c:\\windows
匹配c:\windows
限定符你已經看過了前面的*,
+,,這幾個匹配重複的方式了。下面是正規表示式中所有的限定符(指定數量的**,例如*,等):
表2.常用的限定符
**/語法說明*
重複零次或更多次
+重複一次或更多次
?重複零次或一次
重複n次
重複n次或更多次
重複n到m次
下面是一些使用重複的例子:
windows\d+匹配windows後面跟1個或更多數字
^\w+匹配一行的第乙個單詞(或整個字串的第乙個單詞,具體匹配哪個意思得看選項設定)
字元類要想查詢數字,字母或數字,空白是很簡單的,因為已經有了對應這些字元集合的元字元,但是如果你想匹配沒有預定義元字元的字元集合(比如母音字母a,e,i,o,u),應該怎麼辦?
很簡單,你只需要在方括號裡列出它們就行了,像[aeiou]就匹配任何乙個英文母音字母,[.?!]匹配標點符號(.或?或!)。
我們也可以輕鬆地指定乙個字元範圍,像[0-9]代表的含意與\d就是完全一致的:一位數字;同理[a-z0-9a-z_]也完全等同於\w(如果只考慮英文的話)。
下面是乙個更複雜的表示式:
\(?0\d[) -]?\d
。首先是乙個轉義字元
\(,它能出現0次或1次(
?),然後是乙個
0,後面跟著2個數字(
\d),然後是)或
-或空格中的乙個,它出現1次或不出現(
?),最後是8個數字(
\d)。
分枝條件 | 或
使用分枝條件時,要注意各個條件的順序
。分組 ()
反義
有時需要查詢不屬於某個能簡單定義的字元類的字元。比如想查詢除了數字以外,其它任意字元都行的情況,這時需要用到反義:
表3.常用的反義**
**/語法
說明\w
匹配任意不是字母,數字,下劃線,漢字的字元
\s匹配任意不是空白符的字元
\d匹配任意非數字的字元
\b匹配不是單詞開頭或結束的位置
[^x]
匹配除了x以外的任意字元
[^aeiou]
匹配除了aeiou這幾個字母以外的任意字元
例子:\s+匹配不包含空白符的字串。
]+>匹配用尖括號括起來的以a開頭的字串。
原文請檢視:
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...