Regular expression 是在程式中經常使用到的表示式,特別是作 pattern search 的時候。但是不同的語言有不同的支援程度,以下介紹一些基本的使用方式:
 
字元 功能
. 符合除了 "換行" (\r\n) 之外的所有字元
[abc] 符合在 [ ] 中所有的字元
[^abc] 除了在 [ ] 中的所有字元外,其他全部都符合
[n-q] 符合在 [ ] 中範圍的字元,Ex: [a-z],意即符合 a, b, c... z 的字元
\d 符合所有的數字 (digits)
\D 符合所有 "非數字" 
\n 符合換行字元
\s 符合所有的 white space (包含空白, Tab, \r, \n)
\S 符合所有 非 white space 字元
\t 符合 Tab 字元
\w 符合所有文數字 (文字+數字, 不包含符號)
\W 符合所有 非文數字
\b 符合文數字的邊界
\B 符合非文數字的邊界
\ 符合特殊字元 (ex: \n 表示換行)
+ 比對重複多次的字元 (ex: a+ 表示 a 必須出現一次以上)
* 比對沒有出現或重複多次的字元 (ex: a* 表示 a 沒有出現或出現一次以上)
? 比對沒有出現或只出現一次的字元 (ex: a? 表示 a 沒有出現或只出現一次)
{n} 比對出現 n 次字元 (ex: a{3} 表示 a 一定要出現三次)
{n,} 比對出現至少 n 次的字元, (ex: a{3,} 表示 a 可以至少要出現三次)
{n,m} 比對出現 n ~ m 次的字元, (ex: a{3,6} 表示 a 可以至少出現三次, 最多出現 6 次)
() 比對字串並將其存入變數, (ex: (a*) 則比對連續重複 a 的字串, 並存入 $1 的變數中
 
 
寫 Regular expression 需要大量的測試,尤其是在複雜的判斷的時候。
以下提供一個測試網站,這樣就可以測試看看你所寫的 Regular expression 是否正常了!
Facebook 討論區載入中...