gpt4 book ai didi

php - 为什么这个正则表达式匹配错误的模式?

转载 作者:行者123 更新时间:2023-12-02 13:35:29 26 4
gpt4 key购买 nike

我在 PHP 中有一堆正则表达式,第一个子句是:

if (preg_match('#^/index#i', $_SERVER['REQUEST_URI']) || preg_match('#^/(ACT)|(NSW)|(NT)|(QLD)|(SA)|(TAS)|(VIC)|(WA)/$#i', $_SERVER['REQUEST_URI'])){

现在,假设 $_SERVER['REQUEST_URI'] 等于 /VIC/events/;由于某种原因,这与第一个子句相匹配。为什么?当我添加行尾字符 $ 时,难道不应该仅当它等于 /VIC/ 时才匹配它吗?

最佳答案

您的替换需要用括号括起来:

'#^/(ACT|NSW|NT|QLD|SA|TAS|VIC|WA)/$#i'

没有括号^a|b|c$表示(^a)|b|(c$),这不是您想要的。

关于php - 为什么这个正则表达式匹配错误的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13930037/

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