我有一大堆的内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/
,因为我添加了行尾字符$
?
我也不会想到的“/ VIC /事件”是由这两种模式 – Dale
@Dale的匹配:乍一看它看起来并不像它应该匹配,但再仔细一看(或尝试一下)和你会发现它确实匹配。 –
@MarkByers但'$'不会匹配'/ VIC/events' – Dale