本文目錄一覽:
- 1、PHP中preg_match()和preg_replace()的一些問題
- 2、PHP中正則函數preg_match匹配出現錯誤,應該是什麼問題?
- 3、PHP正則匹配問題preg_match(“/([a-zA-Z]+)/”,”tech/web”,$dirinfo);
- 4、php 正則刪除前後固定字元,中間含有某字元
- 5、PHP 問題,下面這段裡面把eregi 語句改成preg_match語句 php5.3不支持eregi(),用preg_match()替代。
PHP中preg_match()和preg_replace()的一些問題
(一)當中的!是正則表達式(簡稱正則式)的分割界定符號。意味著開始的!和第二個!之間是正則式的【主式】(為了便於你理解,不得不這麼做個偽定義),我們大多數時候都喜歡用「/」作為分割界定符號,因為在(一)中,剛好已經有「/」在【主式】中了。第二個!後面的isU等,是正則式的修正符,至於各個修正符的用法和作用,強烈建議你去查看PHP手冊。
(二)這個[1]中的1,代表著匹配到結果賦值給$outputs後,$outputs數組的下標為1的值,就是前面【主式】中”(*)”匹配到的內容。
(三)第三個,是正則式中「\」轉義符號的用法體現。在正則式中「.」是匹配所有字元的(暫不考慮修正符模式),「\.」卻可以匹配「.」了。在這個正則式中,\/wap\.php將會匹配到「/wap.php」,並用「index.php」去替換掉它。
PHP中正則函數preg_match匹配出現錯誤,應該是什麼問題?
這個是你的表達式語法問題,preg_match中的表達式應該帶有斜杠,你這個應該修改為’/^[a-z0-9_\-\.]+@[a-z0-9\-]+\.[a-z0-9\-\.]+$/i’
PHP正則匹配問題preg_match(“/([a-zA-Z]+)/”,”tech/web”,$dirinfo);
使用括弧會對匹配結果進行分組。在匹配結果中,鍵為0的表示整個正則匹配的內容,之後的是對應的括弧中匹配的東西。
另外,你這裡使用的是preg_match,所以只會匹配一個結果,如果想匹配所有的話,就使用preg_match_all
為了應正上面的描述,你可以運行以下代碼試試:
$dirinfo = array();
preg_match_all(“/([a-zA-Z]+)\d+/”,”tech01/web”,$dirinfo);
print_r($dirinfo);
php 正則刪除前後固定字元,中間含有某字元
style(?=.*\.b).*\/style
解釋如下:
(?=.*\.b) 匹配含有.b的字元,?=是一個非獲取匹配,不會佔用字元。
這樣的話,就可以匹配到你想要的,不會傷及無辜。
PHP 問題,下面這段裡面把eregi 語句改成preg_match語句 php5.3不支持eregi(),用preg_match()替代。
eregi 與 preg_match 的語法相差不大,試修改如下(由於條件限制,未經測試):
if (($envType == 1 preg_math(‘^(‘ . $expr . ‘)(;q=[0-9]\\.[0-9])?$/i’, $str))
|| ($envType == 2 preg_math(‘(\(|\[|;[[:space:]])(‘ . $expr . ‘)(;|\]|\))/i’, $str))) {
if (PMA_langSet($lang)) {
return true;
}
}
eregi 使用 preg_match 配合 i 修正符替代。
原創文章,作者:VZUM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/135873.html