PHP preg_replace()-逗号分隔的值?

PHP preg_replace()-逗号分隔的值?,php,regex,preg-replace,Php,Regex,Preg Replace,我有一个巨大的字符串,其中的某个部分是“字母、数字、数字”,我正试图找到该部分并用preg_replace()更新这两个数字。我搞不懂正则表达式。以下是我所拥有的: preg_replace('/'.$slug.',{0-9},{0-9}/', $slug.','.$num1.','.$num2, $mystring); 但它不起作用。我是regex noobie,有人能帮忙吗?谢谢 试试这个: preg_replace('/'.preg_quote($slug).',\d+,\d+/', $

我有一个巨大的字符串,其中的某个部分是“字母、数字、数字”,我正试图找到该部分并用preg_replace()更新这两个数字。我搞不懂正则表达式。以下是我所拥有的:

preg_replace('/'.$slug.',{0-9},{0-9}/', $slug.','.$num1.','.$num2, $mystring);
但它不起作用。我是regex noobie,有人能帮忙吗?谢谢

试试这个:

preg_replace('/'.preg_quote($slug).',\d+,\d+/', $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);

虽然这是一个好的开始,但我相信OP的问题还有很多。看起来像我想要的,但给了我“未知修饰符“/”。尝试删除斜杠但没有骰子?使用preg_quote($slug),您可以使用Nathanel Shermetedit的另一种解决方案:回答了我自己的问题,preg_quote需要第二个“/”参数!