我有一个巨大的字符串,其中某处是“字母、数字、数字”的一部分,我正在尝试找到该部分并使用 preg_replace() 更新这两个数字。我无法弄清楚正则表达式。这是我所拥有的:
preg_replace('/'.$slug.',{0-9},{0-9}/', $slug.','.$num1.','.$num2, $mystring);
但它不起作用。我是一个正则表达式新手,有人可以帮忙吗?谢谢!
我有一个巨大的字符串,其中某处是“字母、数字、数字”的一部分,我正在尝试找到该部分并使用 preg_replace() 更新这两个数字。我无法弄清楚正则表达式。这是我所拥有的:
preg_replace('/'.$slug.',{0-9},{0-9}/', $slug.','.$num1.','.$num2, $mystring);
但它不起作用。我是一个正则表达式新手,有人可以帮忙吗?谢谢!
你想这样做:
$result = preg_replace('/('.$slug.'),([0-9]*),([0-9]*)/', '$1,'.$num1.','.$num2, $subject);
从您提到的基于另一个示例的错误来看,似乎$slug
可能干扰了正则表达式。preg_quote()
有助于防止这种情况发生,转义保留字符。
尝试这个:
preg_replace('/' . preg_quote($slug) . ',{0-9},{0-9}/', "$slug,$num1,$num2", $mystring);
试试这个:
preg_replace('/'.preg_quote($slug).',\d+,\d+/', $slug.','.$num1.','.$num2, $mystring);