如果我們想找某些關鍵字,或是像DOS中的指令dir *.exe之類的,這些應用就是Regular Expression.
此外在UNIX中更是應用強大,不管是Perl還是Vi都很好用,對於寫程式要判斷某些字元或是限制使用者輸入的字,都需要用到Regular Expression!!
在PHP中有幾個RE的函數如下:
依照RE來搜尋字串:
布林值 erge ( RE規則, 比對字串 );
布林值 ergei ( RE規則, 比對字串 );
erge 與 ergei 差別在於ergei比對是不分英文字元大小寫!!
依照RE取代字串:
字串 ereg_replace(RE規則, 取代字串, 比對字串);
字串 eregi_replace(RE規則, 取代字串, 比對字串);
ereg_replace 與 eregi_replace 差別在於eregi_replace比對是不分英文字元大小寫!!
依照RE分割字串:
陣列 split ( RE規則, 比對字串 );
陣列 spliti ( RE規則, 比對字串 );
split 與 spliti 差別在於spliti比對是不分英文字元大小寫!!
RE特殊字元:
^ 以什麼開頭(行首)
EX: ^a 比對字串以”a”開頭的文字
$ 以什麼為結尾(行尾)
EX: $b 比對以字串”b”開頭的文字
[] 包含什麼的文字
EX:[abc] 以包含abc的文字比對
EX:[a-z] 包含英文小寫a~z
EX:[A-Z] 包含英文大寫A~Z
EX:[0-9] 包含數字0~9
EX:[[:digit:]] 相當於 [0-9]
EX:[[:alnum:]] 相當於[0-9a-zA-z]
EX:[[:alpha:]] 相當於[a-zA-z]
EX:[[:upper:]] 相當於[A-Z]
EX:[[:lower:]] 相當於[a-z]
+ 連接符號
EX: $^ab+c 表示以a開頭,緊接一個b,在接c字串
{} 包含幾個以上
EX: b{4} 要找含有剛好連續四個以上的b
EX: a{3,} 要找連續三個以上的a
EX: c{2,6} 要找連續3個以上六個以下的c
. 萬用字元取代任意字元除了
換行字元,每一個”.”代表一個字元
EX: ^a.b$ 以a開頭b結尾且中間一個字為任一字元
* 前面字元出現任意次包含0次
^[] 比對字串第一個字有無符合
EX:^[abc] 表示要比的字串第一個字必須符合a or b or c
[^] 比對字串是否有包含[]以外的字
EX: [^def] 表示要比對字串有無包含 d or e or f 字元