我不知道要添加到我的正則表達式中才能使其僅匹配「確切」模式。 #users/(.+?)/#
與此字符串users/john/someweirdstuff/
將會匹配。preg_match_all匹配得太多
我越來越'john
'而不是'john/someweirdstuff
'(這是向正確的方向邁出的一大步),但我不希望它匹配。因爲字符串(它們應該是URL)是不一樣的。
所以基本上,我該怎麼後面加我REG EXP,使它說「應該沒有什麼最後的斜線後」
我不知道要添加到我的正則表達式中才能使其僅匹配「確切」模式。 #users/(.+?)/#
與此字符串users/john/someweirdstuff/
將會匹配。preg_match_all匹配得太多
我越來越'john
'而不是'john/someweirdstuff
'(這是向正確的方向邁出的一大步),但我不希望它匹配。因爲字符串(它們應該是URL)是不一樣的。
所以基本上,我該怎麼後面加我REG EXP,使它說「應該沒有什麼最後的斜線後」
您應該使用字符串的末相匹配的$
字符。
你也應該避免匹配「任何字符(.
)」,你應該匹配「,這是不是一個斜槓([^/]
)的任何字符。如示例所示)。
還要注意我省略了問號(?
),在這種情況下問號改變性格從貪婪(匹配儘可能)懶惰(匹配儘可能少)匹配
使用它像這樣:
#users/([^/]+)/$#
所以我在閱讀文檔後試過。但它仍然會匹配,它會使我的通配符獲取'john/someweirdstuff' –
請參閱我對@GerbenJacobs的解答。 –
不錯,那個工程。謝謝! –
如果你想說「最後一次斜線後應該沒有任何內容」,請說「該字符串在最後一次斜線後結束」,即#users/(.+)/$#
。收集問號也應該起作用,使加號「貪婪」,即儘可能匹配。
您應該添加一些代碼,並給出有關URL的示例以及與之匹配的內容。 – hakre
您可能只需在末尾添加'$',以匹配字符串的末尾。 –