下面是您需要的正则表达式:
(http:\/\/localhost\/)(web|web\/category)\/([\d]+)\/
对于preg_replace函数,您需要一个replace语句,它将根据您的条件重新编写字符串:
'$1$2'
http://localhost/
下面是示例代码,它将模式与替换合并,以形成完整的preg_replace语句:
<?php
$pattern = '@(http:\/\/localhost\/)(web|web\/category)\/([\d]+)\/@i';
$subjects = array(
'http://localhost/web/2/',
'http://localhost/web/category/2/'
);
foreach ($subjects as $subject) {
echo sprintf('Original: %s, Modified: %s', $subject, preg_replace($pattern, '$1$2', $subject)), PHP_EOL;
}
将上面的代码放入一个文件(例如:replace.php)并通过命令行运行:
php replace.php