Mat*_*dak 5 php regex preg-match
我被困在一些我知道必须简单的东西,但现在已经绕圈了一会儿.
我想使用php和preg_match创建一个正则表达式,用于cms路由功能,匹配任何不以字符串'admin /'开头的URL,因为somedomain.com/admin/将是cms的管理部分.
到目前为止我已经尝试过
preg_match('#^([^admin])+(.+)$#', 'mens-books'))
Run Code Online (Sandbox Code Playgroud)
由于我正在寻找的url字符串'mens-books'与字符串'admin'中的字母m匹配,因此失败.
我也试过这样做:
preg_match('#^([^admin$])+(.+)$#', 'mens-books'))
Run Code Online (Sandbox Code Playgroud)
因为美元符号表示字符串的结尾,但这也不起作用.
然后我这样做了:
preg_match('#^[?!=admin]+(.+)$#', 'mens-books'))
Run Code Online (Sandbox Code Playgroud)
返回true但只有我认为因为正则表达式中的?!=现在将匹配以a,d,m,i或n开头的任何内容.
请有人能帮忙吗?我对任何建议持开放态度.
谢谢.
马特
if (substr($url, 0, 6) !== 'admin/')
{
echo 'Yippie';
}
Run Code Online (Sandbox Code Playgroud)
但要回答正则表达式的问题.使用方括号时,您指定了一个字符类.这意味着[admin]匹配单个字符或者是一个a,一个d一个m的i或n.如果跳过括号,则匹配文字字符串.但是,正如我的代码证明,如果你需要检查字符串是否以固定的子字符串开头,则根本不需要使用正则表达式.
| 归档时间: |
|
| 查看次数: |
966 次 |
| 最近记录: |