正規表示式
英文為regular expression
,簡稱:regex
或regexp
。
含義:按照某種規則去匹配符合條件的字串
正規表示式由兩種基本字元型別構成:
元字元是在正規表示式中有特殊含義的非字母字元:*
+
?
^
$
.
|
\
()
{}
等
常用字符集:
\t
:水平製表符
\v
:垂直製表符
\n
:換行符
\r
:回車符
\0
:空字元
\f
:換頁符
|
:或
字元類:
由元字元建立。字元類取反:由
^
建立,反向類,[^123]
表示不是字元1
或2
或3
的內容
範圍類:
[a-z]
:來連線兩個字元表示從a
到z
的任意字元
預定義類:
.
:[^\r\n]
,除了回車符和換行符之外的所有字元
\d
:[0-9]
,數字字元
\d
:[^0-9]
,非數字字元
\s
:[\t\n\x0b\f\r]
,空白符
\s
:[^\t\n\x0b\f\r]
,非空白符
\w
:[a-za-z0-9_]
,單詞字元(字母、數字、下劃線)
\w
:[^a-za-z0-9_]
,非單詞字元
邊界:
^
:開始標記,以xx
開始
$
:結束標記,以xx
結束
\b
:單詞邊界
\b
:非單詞邊界
量詞:
?
:出現0
次或1
次
+
:出現1
次或多個
*
:出現0
次或多次(任意次)
:出現
n
次
:出現
n
次或n
次以上,當n
為0
時等價於*
,n
為1
時等價於+
:出現
n
次到m
次,當n
為0
且m
為1
時等價於?
貪婪模式和非貪婪模式
正規表示式預設是貪婪模式,當使用量詞進行匹配時,會盡可能匹配多的。
非貪婪模式:讓正規表示式盡可能少的匹配,也就是說一旦成功匹配不再繼續嘗試。
在量詞後面加上?
即可
'123456789'.match(/\d?/g)
result:
分組()
忽略分組:(?: byron).(ok)
前瞻後顧
正向前瞻:exp(?=assert)
負向前瞻:exp(?!assert)
正向後顧:exp(?<=assert)
負向後顧:exp(?物件屬性
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...