只需从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