2012-04-04 81 views
18

我並不十分確定這種類型的正則表達式的正確用法是什麼,但基本上我想要做的是匹配以「/」開頭的任何字符串,但作爲一個例子,後面跟着「bob /」。Perl Regex「Not」(negative lookahead)

所以這將匹配:

/tom/ 
/tim/ 
/steve 

但這些不會

tom 
tim 
/bob/ 

我相信答案是非常簡單的,但我有困難的時候搜索「正則表達式不是」任何地方。我敢肯定,對於我所希望得到的結果會有一個更好的詞彙,但我不確定它會是什麼。

編輯:我改變了標題,以指示什麼,我一直在尋找

+1

怎麼樣'/ jimbob /'?那麼'/ bob /蘋果'呢? – ysth 2012-04-04 02:58:59

+0

對於我的目的/ jimbob /沒問題,但/ bob /蘋果不是 – GoldenNewby 2012-04-04 22:58:07

回答

19

可以使用負前瞻("Extended Patterns" in perlre下記錄的)正確的名稱:

/^\/(?!bob\/)/ 
+0

雖然 - 但你已經掌握了它的要點。謝謝! – GoldenNewby 2012-04-04 00:25:00

+0

@GoldenNewby Woops,忽略了這個問題的一部分 – 2012-04-04 00:25:49

+2

現在默認的正則表達式標誌是一個特徵,這個'^'最好寫成'\ A'。使用替代分隔符和'/ x',它看起來像'm | \ A /(?!bob /)| x'。 – 2012-04-04 03:41:39