嘗試檢查模式的字符串。PHP正則表達式匹配給出錯誤
$variable = '[text]';
if (eregi("/(\[(.*?)\])/", $variable)) {}
此代碼提供錯誤eregi() [function.eregi]: REG_BADRPT
,這是什麼解決辦法嗎?
嘗試檢查模式的字符串。PHP正則表達式匹配給出錯誤
$variable = '[text]';
if (eregi("/(\[(.*?)\])/", $variable)) {}
此代碼提供錯誤eregi() [function.eregi]: REG_BADRPT
,這是什麼解決辦法嗎?
這是因爲你在eregi中使用preg風格的表達式。您不需要perl樣式分隔符。
但是,正如Mark Byers評論的那樣,使用preg_match是未來的證明。
<?php
$variable = '[text]';
if (preg_match("/(\[(.*?)\])/", $variable)) {
echo 'ok';
}
只是爲了澄清,珍珠風格delimeters是兩個斜線。這是ereg語法的樣子:
<?php
$str = 'abc';
if (ereg('a', $str))
{
echo 'match found'; // match found
}
?>
我沒有像通常那樣使用正則表達式,只是爲了保持簡單。
我也想提一下,有多字節ereg函數仍然有效,例如mb_ereg。
你爲什麼使用eregi?從手冊:*此功能從PHP 5.3.0開始已被拒絕。依靠這個功能是非常沮喪的。* http://www.php.net/manual/en/function.eregi.php – 2010-09-17 23:15:43