1

我想做一些事情,比如从这条线得到相反的匹配:

$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)?

4

2 回答 2

1

你的例子还是有点模糊。

如果字符串包含真或假,输出应该是“真”吗?

如果这是你正在寻找的情况,preg_match()我想。

如果您希望在字符串包含 true 时返回“true”,如果字符串包含 false 则返回“false”,我认为您可能必须使用一系列函数,例如 preg_match() 或 strpos() 来分别匹配每个条件。

于 2010-08-11T13:34:19.970 回答
0

怎么样:

$output = preg_replace($_BOOL_, '', preg_grep($_BOOL_, $input));

编辑:再次查看您的问题,我不确定我们在谈论同一件事。对于输入数组中的每个字符串,preg_replace执行它可以进行的任何替换并返回结果;任何与正则表达式不匹配的字符串都会原封不动地传递。 preg_filter是相同的,只是它丢弃了与正则表达式不匹配的字符串。我不会称这些对立面。如果这不是您想要的,也许您可​​以提供一些示例。

于 2010-08-11T04:18:55.073 回答