我有一大堆的內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