0

我有一个巨大的字符串,其中某处是“字母、数字、数字”的一部分,我正在尝试找到该部分并使用 preg_replace() 更新这两个数字。我无法弄清楚正则表达式。这是我所拥有的:

preg_replace('/'.$slug.',{0-9},{0-9}/', $slug.','.$num1.','.$num2, $mystring);

但它不起作用。我是一个正则表达式新手,有人可以帮忙吗?谢谢!

4

3 回答 3

0

你想这样做:

$result = preg_replace('/('.$slug.'),([0-9]*),([0-9]*)/', '$1,'.$num1.','.$num2, $subject);
于 2012-08-03T04:18:27.037 回答
0

从您提到的基于另一个示例的错误来看,似乎$slug可能干扰了正则表达式。preg_quote()有助于防止这种情况发生,转义保留字符。

尝试这个:

preg_replace('/' . preg_quote($slug) . ',{0-9},{0-9}/', "$slug,$num1,$num2", $mystring);
于 2012-08-03T04:18:28.737 回答
0

试试这个:

preg_replace('/'.preg_quote($slug).',\d+,\d+/', $slug.','.$num1.','.$num2, $mystring);
于 2012-08-03T03:45:36.007 回答