我有这样的代码正则表达式的结果“分隔符不能是字母,数字或反斜线”
function a($menu_item, $remove_link) {
$pattern = 'class="(.+)"(.+)<a.+>(.+)</a>';
if($remove_link) {
return preg_replace($pattern, 'class="$1 selected"$2$3', $menu_item); //<- line 6
}
return $menu_item;
}
这基本上检查,如果$remove_link
是真实的,然后删除该链接并增加了一个类定义$menu_item
例如,如果我使用
$menu_item = '<li class="menuitem first"><a href="index.php">Home</a></li>';
$menu_item = a($menu_item, true);
它应该返回
<li class="menuitem first selected">Home</li>;
正则表达式进行测试,它工作在记事本+ +,但我的职责是给这个错误:
Warning: preg_replace(): Delimiter must not be alphanumeric or backslash in functions.php on line 6
我看到PHP的模式必须被“分隔”用斜杠,所以我试图用class="/(.+)"(.+)<a.+>(.+)/</a>
相反,但它给出了同样的错误。
我在想什么?我如何正确使用分隔符?
见http://php.net/manual/en/regexp.reference.delimiters.php – mario