PHP 关于preg_replace的问题

$_CFG["BasePath"]=preg_replace("[/\\]{1}$","",dirname($_SERVER["SCRIPT_NAME"]));Warni... $_CFG["BasePath"] = preg_replace("[/\\]{1}$" , "", dirname($_SERVER["SCRIPT_NAME"]));
Warning: preg_replace(): No ending matching delimiter ']' found in E:\xampp\htdocs\bugfree\Include\Init.inc.php
$_CFG["BasePath"] = preg_replace("Admin[/\\]{0,1}$" , "", $_CFG["BasePath"]);
Warning: preg_replace(): Delimiter must not be alphanumeric or backslash in E:\xampp\htdocs\bugfree\Include\Init.inc.php
展开
 我来答
百度网友a19d193
推荐于2016-08-16 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1426万
展开全部
正则表达式是需要有开始和结束标记的
你的第一个表达式应该改成#[/\\]{1}#$,第二个应该改成#Admin[/\\]{0,1}#$

单词Delimiter 表示分界符,第一个是它认为你用[作为分界符,只找到开头的[而没有找到另一个匹配的[作为结尾报错。第二个是告诉你分界符必须是非字母数字和白字符,因为你的第一个字是A,而A是不能做分界符的。
illwiller
2013-09-05 · 超过13用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:29.7万
展开全部
当使用PCRE函数的时候, 模式需要由分隔符闭合包裹. 分隔符
可以使任意非字母数字, 非反斜线, 非空白字符.

经常使用的分隔符是正斜线(/), hash符号(#) 以及取反符号(~).
下面的例子都是使用合法分隔符的模式.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

如果分隔符需要在模式内进行匹配, 它必须使用反斜线进行转义. 如果分隔符经常在 模式内出现,
一个更好的选择就是是用其他分隔符来提高可读性.
追问
$_CFG["BasePath"] = preg_replace("[/\\]{1}$" , "", dirname($_SERVER["SCRIPT_NAME"]));
$_CFG["BasePath"] = preg_replace("Admin[/\\]{0,1}$" , "", $_CFG["BasePath"]);
求解正确写法!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lizhanguo9
2013-09-05 · TA获得超过515个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:316万
展开全部
preg_replace("/Admin[/\\]{0,1}$/" , "", $_CFG["BasePath"]);
正则应该用“//”夹在中间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式