只需從PHP 5.2遷移到5.3,就可以完成很多工作!以下是確定的,還是你會做不同的事情?從ereg_replace移植到preg_replace
$cleanstring = ereg_replace("[^A-Za-z0-9]^[,]^[.]^[_]^[:]", "", $critvalue);
到
$cleanstring = preg_replace("[^A-Za-z0-9]^[,]^[.]^[_]^[:]", "", $critvalue);
感謝所有
只需從PHP 5.2遷移到5.3,就可以完成很多工作!以下是確定的,還是你會做不同的事情?從ereg_replace移植到preg_replace
$cleanstring = ereg_replace("[^A-Za-z0-9]^[,]^[.]^[_]^[:]", "", $critvalue);
到
$cleanstring = preg_replace("[^A-Za-z0-9]^[,]^[.]^[_]^[:]", "", $critvalue);
感謝所有
作爲後續克萊的回答是:
我不熟悉的POSIX正則表達式語法(ereg_ *)兩種,但根據您的標準以下應該做你想要什麼:
$cleanstring = preg_replace('#[^a-zA-Z0-9,._:]#', '', $critvalue);
這將刪除除az,AZ,0-9和字符串之外的所有內容。
我不是那熟悉的ereg_ *功能,但你的預浸版本有幾個問題:
一個例子:
$out = preg_replace('![^0-9a-zA-Z]+!', '', $in);
注意我使用!劃定正則表達式,但你可以很容易地使用/,〜或其他。上面的內容除了數字和字母之外的所有東
參見Pattern Syntax,特別是Delimiters。
啊我看到了,那麼我怎麼會匹配「,._:」等?這是前一段時間寫的,我想我正在嘗試清理字符串並保留所有a-z,A-Z,Number和「,._:」 - 其他所有內容都可以被刪除! – Abs 2009-12-30 00:40:02
正則表達式字符需要轉義(在它們之前放一個\)。這適用於| []() - * +?{}^$ \,分隔符以及其他可能我忘記的字符。 – cletus 2009-12-30 00:57:29