preg_replace every except:spaces,(,),numbers,AND,OR

时间:2011-08-11 02:45:13

标签: php regex preg-replace

我想替换除以下内容之外的所有内容:

spaces
(
)
numbers
AND
OR

这是我当前的代码几乎可以工作,但它允许保留 ANDOR 中的任何字母。

我希望它只留下完整的单词AND或OR,否则将其删除。

$string = preg_replace("/[^()ANDOR0-9 ]/", "", $string);

任何想法我需要什么代码?

1 个答案:

答案 0 :(得分:2)

$a1 = array("AND", "OR");
$a2 = array("&","|");
$result = str_replace($a2, $a1, preg_replace("/[^()0-9 &|]/", "", str_replace($a1, $a2, preg_replace("/[^()ANDOR0-9 ]/", "", $string))));

不是很优雅,但它有效。