我們什么時候使用正則表達式呢?不是所有的字符操作都用正則就好了,php在某些方面用正則反而影響效率。當(dāng)我們遇到復(fù)雜文本數(shù)據(jù)的解析時候,用正則是比較好的選擇。
優(yōu)點
正則表達式在處理復(fù)雜字符操作的時候,可以提高工作效率,也在一定程度節(jié)省你的代碼量。
缺點
我們在使用正則表達式的時候,復(fù)雜的正則表達式會加大代碼的 復(fù)雜度,讓人很 難理解。所以我們有的時候需要在正則表達式內(nèi)部添加注釋。
通用模式(推薦學(xué)習(xí):PHP編程從入門到精通)
定界符,通常使用 "/"做為定界符開始和結(jié)束,也可以使用"#"。
什么時候使用"#"呢?一般是在你的字符串中有 很多"/"字符的時候,因為正則的時候這種字符需要轉(zhuǎn)義,比如uri。
使用"/"定界符的代碼如下.
$regex = '/^http://([w.]+)/([w]+)/([w]+).html$/i'; $str = 'http://www.youku.com/show_page/id_ABCDEFG.html'; $matches = array(); if(preg_match($regex, $str, $matches)){ var_dump($matches); } echo "n";
preg_match中的$matches[0]將包含與整個模式匹配的字符串。
使用"#"定界符的代碼如下.這個時候?qū)?quot;/"就不轉(zhuǎn)義!
$regex = '#^http://([w.]+)/([w]+)/([w]+).html$#i'; $str = 'http://www.youku.com/show_page/id_ABCDEFG.html'; $matches = array(); if(preg_match($regex, $str, $matches)){ var_dump($matches); } echo "n";
正則表達式的定義可以這樣簡單概括:“正則表達式描述了一種字符串匹配的模式,通過這個模式在特定的函數(shù)中對字符串進行匹配、查找、替換及分割等操作。作為一個匹配模板,是由原子、特有功能字符及模式修正符三部分組成的文字模式。”