Bre*_*ett 2 php regex preg-match
我在PHP中有一堆正则表达式,第一个子句是:
if (preg_match('#^/index#i', $_SERVER['REQUEST_URI']) || preg_match('#^/(ACT)|(NSW)|(NT)|(QLD)|(SA)|(TAS)|(VIC)|(WA)/$#i', $_SERVER['REQUEST_URI'])){
Run Code Online (Sandbox Code Playgroud)
现在,说$_SERVER['REQUEST_URI']等于/VIC/events/; 这是出于某种原因与第一个条款相匹配.为什么?如果它等于/VIC/我添加行尾字符时,它不应该只匹配$吗?
您需要在轮换周围使用括号:
'#^/(ACT|NSW|NT|QLD|SA|TAS|VIC|WA)/$#i'
Run Code Online (Sandbox Code Playgroud)
没有括号^a|b|c$意味着(^a)|b|(c$)什么不是你想要的.
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |