正規表示式為正規表示式引擎所解釋,實際上為有限狀態機實現(dfa)
. * [ ] ^ $ \ + ? | ( )
特殊含義字元需要被轉義符(backslash character (\)
)轉義(escape)
用例:
\\+
第乙個轉義符轉義轉義符(\)
,第二字元轉義特殊字元+
特例:前向斜線/
,也需要被轉義
^
(caret) 匹配以指定模式開頭的字串。
比如
^hello
匹配:"hello world"
不匹配:
「this is hello world」
$
匹配以某個指定模式結束的字串
hello$
匹配:"world hello"
不匹配:
「world hellos」
"what are world hello meaning"
.
比如:
.ne
匹配:"one"
" ne"
不匹配:
"ne" //前面至少有乙個字元
^$
匹配所有空行
一類字元可以使用
來表示,比如[abc]
可以匹配a
或b
或c
,但是至少匹配其中乙個,否則匹配失敗。
否定是乙個組合鍵[^]
,比如[^abc]
一般都知道匹配:
「z」"zebra"
" abc" //space
不匹配:
"" //至少匹配乙個不是a且不是b且不是c的字元,不能匹配空(注意不是空格)
「absent」
[0-9][a-z]
這種,匹配乙個範圍的正則,那麼也可以組合:
[[a-z][a-z][0-9]]
匹配任意乙個字母或數字。
還有另一種變化就是斷裂區間:
[a-ho-z]
匹配a-h
或o-z
種任意乙個字元。
因為字母和數字經常用到所以新增了一些快捷定義:
bre 特殊字元類
bre為主流正規表示式處理引擎class
description
[[:alpha:]]
matches any alphabetical character, either upper or lower case
[[:alnum:]]
matches any alphanumeric character 0–9, a–z, or a–z
[[:blank:]]
matches a space or tab character
[[:digit:]]
matches a numerical digit from 0 through 9
[[:lower:]]
matches any lowercase alphabetical character a–z
[[:print:]]
matches any printable character
[[:punct:]]
matches a punctuation character
[[:space:]]
matches any whitespace character: space, tab, nl, ff, vt, cr
[[:upper:]]
matches any uppercase alphabetical character a–z
*
(asterisk)萬用字元匹配0個或多個字元,意味著:
a*
匹配:"a"
"aaaaa"
"abc"
"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...
正規表示式之BRE與ERE字符集
一 bre basic register express 基本的正規表示式 2 meta字元 3 方括號表示式 4 後向引用 匹配於正規表示式匹配的先前的部分。第一步將子表示式包圍在 與 裡 第二部使用 digit,匹配於第n個先前方括號內子表示式匹配成功的字元。5 區間表示式 n與m的值在0至re...