如何使用preg_replace函数替换正则表达式模式?

问题描述 投票:1回答:1

我有下面的网址

/test/(?<name>\w+)/(?<id>\d+)/

我想用这样的preg_replace()函数替换它

/test/name/(?<id>\d+)/

我试过这个,但它没有像我预期的那样工作。

$subject = '/test/(?<name>\w+)/(?<id>\d+)/';

preg_replace('#\(.*\<name\>.*\)#', 'name', $subject);
php regex
1个回答
1
投票

你可以使用)将所有角色带到下一个“[^)]+”。

$subject = '/test/(?<name>\w+)/(?<id>\d+)/';
$subject = preg_replace('#\(.*\<name\>[^)]+\)#', 'name', $subject);
echo $subject; 

产出:

/test/name/(?<id>\d+)/
© www.soinside.com 2019 - 2024. All rights reserved.