gpt4 book ai didi

php - 帮助正则表达式匹配除管理文件夹以外的任何网址

转载 作者:可可西里 更新时间:2023-11-01 13:42:05 25 4
gpt4 key购买 nike

我被一些我知道一定很简单但现在一直在兜圈子的事情困住了。

我想使用 php 和 preg_match 创建一个与 cms 路由功能一起使用的正则表达式,它匹配任何不以字符串 'admin/' 开头的 URL,因为 somedomain.com/admin/将是的管理部分内容管理系统。

我已经试过了

preg_match('#^([^admin])+(.+)$#', 'mens-books'))

失败,因为我要查找的 url 字符串“mens-books”与字符串“admin”中的字母 m 匹配,因此失败。

我也试过这样做:

preg_match('#^([^admin$])+(.+)$#', 'mens-books'))

美元表示字符串的结尾,但这也不起作用。

然后我这样做了:

preg_match('#^[?!=admin]+(.+)$#', 'mens-books'))

返回 true 但只是我认为是因为正则表达式中的 ?!= 现在将匹配任何以 a、d、m、i 或 n 开头的内容。

有没有人能帮忙解决这个问题。我愿意接受任何建议。

谢谢。

马特

最佳答案

if (substr($url, 0, 6) !== 'admin/')
{
echo 'Yippie';
}

但要回答正则表达式问题。当您使用方括号时,您就是在指定一个字符类。这意味着 [admin] 匹配单个字符,该字符可以是 admin。如果跳过方括号,则匹配的是文字字符串。但是,正如我的代码证明,如果您需要检查字符串是否以固定子字符串开头,则根本不需要使用正则表达式。

关于php - 帮助正则表达式匹配除管理文件夹以外的任何网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com