繁体   English   中英

PHP用主题字符串内的模式替换正则表达式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM