preg_replace完全相反

时间:2010-08-10 16:07:45

标签: regex preg-replace php-5.2

我希望做一些像这一行得到相反的匹配:

$input = "21.asdf*234true;asdf0--11"
$_BOOL_ ="/(true|false)/i";
$output = preg_replace($_BOOL_, '', $input);
//Result: "21.asdf*234;asdf0--11"
//Desired result: "true"

php 5.3中的哪个是

$output = preg_filter($_BOOL_, '', $input);

但我在5.2,并不知道如何在这里得到我想要的...建议(除了在ubuntu上编译5.3)?

2 个答案:

答案 0 :(得分:1)

你的例子仍然有点模糊。

如果字符串包含EITHER true或false,则输出应为“true”?

如果是这种情况,那么我认为是preg_match()

如果你想要返回“true”如果字符串包含true而返回“false”如果它包含false,我认为你可能必须使用一系列函数,如preg_match()或strpos()来匹配每个条件分开。

答案 1 :(得分:0)

怎么样:

$output = preg_replace($_BOOL_, '', preg_grep($_BOOL_, $input));
编辑:再看一遍你的问题,我不确定我们是在谈论同样的事情。对于输入数组中的每个字符串,preg_replace执行任何替换并返回结果;任何与正则表达式不匹配的字符串都将保持不变。 preg_filter是相同的,除了丢弃与正则表达式不匹配的字符串。我不会称那些对立面。如果这不是你想要的,也许你可以提供一些例子。