0

在 PHP 中,我有一个字符串,其值类似于1 OR 2或可能1 AND (20 OR 3)。我想用一个后跟数字的短语替换这些数字,以产生类似的condition1含义:

1 OR 2=>condition1 OR condition2

1 AND (20 OR 3)=>condition1 AND (condition20 OR condition3)

我想我可以使用 preg_replace 来做到这一点,但我不知道怎么做。我很难在更换期间保留数字的价值。

如果它更容易,我也会接受 javascript 中的答案

4

2 回答 2

3

如果运算符的参数是字符串中唯一的数字,您可以执行以下操作:

$new = preg_replace( '/(\d+)/', 'condition$1', $input);

这匹配任何连续的数字,并将它们捕获到一个捕获组中,我们稍后在替换中将其引用为$1.

您可以从此演示中看到,对于您的测试用例,输出:

condition1 OR condition2
condition1 AND (condition20 OR condition3)
于 2013-02-07T20:20:09.850 回答
1

你可以使用 str_replace($search, $replace, $string)

$search can be array whatever you want to replace
$replace can alse be an array wherever you want to replace in a string
$string is a string where you want to change

它是您的问题的解决方案还是您想要其他东西?

于 2013-02-07T20:22:10.643 回答