PERL 正規表達式會用到的符號

URL Link //n.sfs.tw/13020

2019-01-10 23:15:51 By 張○○

PERL 正規表達式(Regular Expression, Regex)會用到的符號

 

各種字元

^ 從字串開始 /^abcd/ => abcdefg O, 123abcd X

$ 到字串結尾 /abcd$/ => abcdefg X, 123abcd O

. 除了換行外的任一字元  /ab.d/ => abcd O, ab2d O, abccd X, ab\nd X

* 出現0次以上 /ab*cd/  => abbbcd O, acd O, ab123cd X

+ 出現1次以上 /ab+cd/ => abcd O, acd X, ab123cd X

? 可有可無 /ab?cd/ => abcd O, abbcd X, acd O

| 或  /[a|b|cd]efg/ => aefg O, befg O, cdefg O, abefg X, nefg X

( ) 群組 /((a*b)c)d/

[ ] 字元串、字元組合 /[\w]+/  123 X, abc O

{ } 重覆 /abc{3}/ => abcccdd O, abc X

\ 脫逸字元 /a\.cd/ => abcd X, a.cd O, 123a.cd O

 

重覆

* a* a出現0次以上

+ a+ a出現1次以上

? a? a可有可無

{m} a{m} a出現m次

{m,} a{m,} a出現m次以上

{m,n} a{m,n} a出現m到n次

 

控制字元

\0 空字元 Null

\e esc

\f 送紙

\t tab

\n 換行newline

\r 回行首 return (CR)

\x 十六進位字元
 

字元集(群組)或特殊字元

範例請參考 [PERL] Regex 字元集(群組)

\s 空白字元 代表 [ \t\r\n\f]  <==注意\t 前有一個空白

\S 非空白字元 [^\s]

\d 數字字元 [0-9]

\D 非數字字元 [^0-9]

\w 文字字元 [0-9a-zA-Z_]  <== 注意有下底線 '_'

\W 非文字字元 [^\w]

\b 文字邊界 \bthe\b

\B 非文字邊界