2009-10-08 84 views
0

我有一些字符串需要根據正則表達式進行檢查。下面是正則表達式:正則表達式忽略2個單詞之間的所有內容

apple(?!(?not)).*?inc(\.|luded)? 

串1:「香蕉,不包括爛蘋果」 - 不給我的對手是我想要的。

串2:「香蕉,爛蘋果列入」 - 產生一個匹配這正是我想要

但是,如果我有一個字符串像...

「香蕉,爛蘋果,成熟的鱷梨不包括「或 」香蕉,爛蘋果和杏不包括「都產生了我不想要的比賽。所以基本上,我想看看「包含」(或「inc」或「inc。」)是否在字符串中,否「不」在「包含」之前,並忽略其間的所有其他內容。

謝謝!

回答

2

如何:

apple.*(?<!\snot)\s+inc(\.|luded) 
+0

優秀!謝謝蒂姆! – Jaime 2009-10-08 23:47:50

1

您正在使用否定性超前斷言來驗證「不」是否在「蘋果」之後不會出現。但是,如果我正確地理解了你,你想要檢查的是「inc」不是立即」之前的「not」。您可以使用負向後斷言,類似如下:

apple.*(?<!(\bnot))inc(\.|luded)? 
+0

感謝菲爾......蒂姆一分鐘擊敗你太它。 :) – Jaime 2009-10-08 23:43:36

+0

其他方法,實際上。菲爾打敗了我40秒,他也打了很多。 – 2009-10-08 23:48:06

相關問題