用短语编号替换字符串中的数字

时间:2013-02-07 20:18:10

标签: php regex string preg-replace

在PHP中,我有一个字符串,其值类似于1 OR 21 AND (20 OR 3)。我想用短语后跟数字替换这些数字,以使condition1含义为:{/ p>

1 OR 2 => condition1 OR condition2

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

我想我可以使用preg_replace来做到这一点,但我无法弄清楚如何。在更换过程中,我很难保留数字的价值。

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

2 个答案:

答案 0 :(得分:3)

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

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

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

您可以从this demo看到,对于您的测试用例,此输出:

condition1 OR condition2
condition1 AND (condition20 OR condition3)

答案 1 :(得分: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

是您的问题的解决方案还是您想要别的东西?