我有一个巨大的字符串,其中的某个部分是"字母,数字,数字"我试图找到那个部分并使用preg_replace()更新这两个数字。我无法弄清楚正则表达式。这就是我所拥有的:
preg_replace('/'.$slug.',{0-9},{0-9}/', $slug.','.$num1.','.$num2, $mystring);
但它不起作用。我是一个正则表达式noobie,任何人都可以帮忙吗?谢谢!
答案 0 :(得分:0)
试试这个:
preg_replace('/'.preg_quote($slug).',\d+,\d+/', $slug.','.$num1.','.$num2, $mystring);
答案 1 :(得分:0)
你想这样做:
$result = preg_replace('/('.$slug.'),([0-9]*),([0-9]*)/', '$1,'.$num1.','.$num2, $subject);
答案 2 :(得分:0)
根据您提到的基于另一个示例的错误来判断,$slug
可能会干扰正则表达式。 preg_quote()
有助于防止这种情况发生,逃避保留字符。
试试这个:
preg_replace('/' . preg_quote($slug) . ',{0-9},{0-9}/', "$slug,$num1,$num2", $mystring);