正则表达式 - 否定字符串

时间:2012-11-15 22:41:32

标签: regex-negation

我有以下格式的文件

AAA
BBB
联赛= “NFL”
联赛= “CFB”
联赛= “NBA”
联赛= “CBK”
CCC
DDD

我想仅列出包含联赛但不包括NFL或NBA的线路。所以从上面来看,我只想要:

联赛= “CFB”
联赛= “CBK”

提前谢谢。

3 个答案:

答案 0 :(得分:0)

这样的事情应该有效:

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

答案 1 :(得分: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)

        }
 }

填充一个字符串列表,其中包含以League开头但不包含NFL或NBA的文件中的所有字符串。

在一行上使用正则表达式匹配这样做会很难看。

答案 2 :(得分:0)

最后两个将被解释为 /联赛= “[^ NFLBA]”/