BRE正規表示式

2021-09-10 12:20:08 字數 2263 閱讀 9642

正規表示式為正規表示式引擎所解釋,實際上為有限狀態機實現(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]可以匹配abc,但是至少匹配其中乙個,否則匹配失敗。

否定是乙個組合鍵[^],比如[^abc]

匹配:

「z」"zebra"

" abc" //space

不匹配:

"" //至少匹配乙個不是a且不是b且不是c的字元,不能匹配空(注意不是空格)

「absent」

一般都知道[0-9][a-z]這種,匹配乙個範圍的正則,那麼也可以組合:

[[a-z][a-z][0-9]]匹配任意乙個字母或數字。

還有另一種變化就是斷裂區間:

[a-ho-z]匹配a-ho-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...