[英]PHP replace regex with pattern inside subject string
我不太确定如何用标题来表达,但我正在努力实现以下目标:
$string = 'category/(.*)/page/([0-9]+)'
我需要通过传递参数数组将其转换为category/test/page/2
,如下所示:
Array
(
[0] => test
[1] => 2
)
执行$string = preg_replace('#^'.$string.'$#', $replacements, $string)
导致$replacements
是一个数组的错误,这与文档所说的相符,但是我不确定如何否则就去做吧。
我真的无法理解模式和主题开始相同的字符串。
你将有一个新的正则表达式来匹配你想要的字符串。 您必须制作与文字字符串(.*)
和([0-9]+)
匹配的内容。 像这样的事情,也许:
/(.+)\/(\(.+\))\/(.+)\/(\(.+\))/
然后你可以尝试这样做:
$string = preg_replace('/(.+)\/(\(.+\))\/(.+)\/(\(.+\))/', '$1/test/$3/2', $string);
或使用$replacements
:
$string = preg_replace(
'/(.+)\/(\(.+\))\/(.+)\/(\(.+\))/',
'$1/'.$replacements[0].'/$3/'.$replacements[1],
$string
);
演示: https : //eval.in/435153
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.