2012-11-15 30 views
0

我有以下格式正則表達式 - 否定串

AAA
BBB
聯賽= 「NFL」
聯賽= 「CFB」
聯賽= 「NBA」
聯賽=」文件CBK」
CCC
DDD

我想只列出含有聯賽的線,但不NFLØ NBA。所以從上面的,我只是想:

聯賽= 「CFB」
聯賽= 「CBK」

預先感謝您。

回答

0

像這樣的東西應該工作:

/League="[^(NFL)|(NBA)]"/ 
+0

它應該是全球性的,使迭代匹配'/ g'並匹配更多的時間'' –

+0

謝謝你的但我認爲這個解決方案的作用僅僅是因爲它消除了以N開始的運動,因爲當我用CBK取代NBA時,它不起作用。 – user1828108

0

你必須使用正則表達式? (它是家庭作業?)

如果沒有,你可以讀取該文件,並過濾它,像這樣:

BufferedReader in = new BufferedReader(new FileReader("filePath")); 

String line = in.readLine(); 
List<String> myList = newArrayList<String>(); 

while(line != null){ 
    if ((line.startsWith("League")) && 
     (!line.contains("NFL")) && 
     (!line.contains("NBA"))){ 

      myList.add(line) 

     } 
} 

要填充包含所有這一切與聯賽開始的文件中的字符串的字符串列表,但那不包含NFL或NBA。

這樣做與一條線上的正則表達式匹配將是醜陋的。

+0

謝謝你的例子。然而,不,它不是作業,我需要一個正則表達式。 – user1828108

0

最後兩個將被解釋爲 /聯賽=「[^ NFLBA]」/