2014-04-07 67 views
2

我正在尋找一個正則表達式,它將匹配任何不包含反斜槓的內容。我一直在http://regex101.com/#PCRE上嘗試正則表達式,但這兩者都不是真的有幫助。PRCE正則表達式排除特定字符?

我想匹配任何URL字符串,看起來像它在路徑只有一個斜線:

/path/page 
/path/anypage 

而且不匹配更多的斜槓任何網址:到目前爲止

/path/morepath/page 
/path/morepath/andmorepath/page 

,我的正則表達式看起來像\/path\/[a-z]+,但也很高興地匹配更多斜槓的URL。

如何排除這些網址?

+0

你忘了逃脫你的第二個斜槓,它是作爲一個結束分隔符:'\ /路徑\/[AZ] +' 。或者(取決於語言),您可以使用不同的分隔符,如'#'或'〜'('#/ path/[a-z] +#')。 – Sam

+0

@Sam - 謝謝,已編輯,但問題仍然相同! – Richard

+0

退房@傑裏的回答:) – Sam

回答

3

帶有負向視向,或者帶有否定的類。

取反類:

^/path/[^/]*$ 

demo

求反類將匹配除了裏面有什麼,在這種情況下,一切,在最後一個斜槓和錨$確保字符串進行測試,直到結束。

負前瞻:

^/path/(?!.*/) 

demo

負前瞻將使如果裏面有什麼相匹配的整場比賽失敗。因此,如果.*/匹配負向預測點,則匹配將失敗。

注:我通常使用分隔符,它使用的字符不出現在我的正則表達式中。在這種情況下,我將分號從/更改爲~

+1

作爲一個註釋,取決於分隔符,'/'可能需要轉義。 – Sam

+0

@Sam補充,謝謝! – Jerry

+0

太棒了,謝謝!我想出了否定的類,但沒有意識到我必須在最後加上'$'來確保整個字符串被測試。再次感謝您提供非常有用的答案。 – Richard