正則表達式有點麻煩。我試圖測試一場比賽,但只有在沒有任何後續比賽的情況下。所以在下面的例子中,如果我去測試/創建/ 1/2 - 它仍然匹配。我只想匹配,如果它明確地測試/創建/ 1(但一個是動態的)。正則表達式 - 匹配字Aslong As Nothing跟着它
if(preg_match('^test/create/(.*)^', 'test/create/1')):
// do something...
endif;
我發現了一些答案,建議在我的分隔符之前使用$,但它沒有出現任何操作。或^和$的組合,但我不能完全弄明白。正則表達式混淆了我的地獄!
編輯:
我真的不解釋這不夠好,所以我只想澄清:
我所需要的,如果URL是測試/創建/ {ID}語句返回true - {該id}是動態的(和任何長度)。如果{id}後跟正斜槓,則if語句會失敗。因此,如果在測試有人類型/創建/ 1/2 - 它會因爲1
解決方案
我去到底thedarkwinter的回答後,正斜槓的失敗,因爲它就是最好的工作對我來說,儘管其他答案也有效。
我也不得不在正則表達式中添加一些額外的,以確保它會帶連字符的工作,以及因此最終的代碼是這樣的:
if(preg_match('^test/create/[\w-]*$^', 'test/create/1')):
// do something...
endif;
第一個給我下面的錯誤:^測試/製作/ [^ /] + $^ 第二個工程,但即使有後它的東西相匹配。任何更多的幫助將是偉大的。 – 0Neji
@ 0Neji,我修正了第一個代碼。這兩個版本都適合我。請參閱http://ideone.com/au7iqu。 – falsetru