如何使用regex检查多个字符串之间的特定字符串?

ocebsuys  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(306)

我有以下字符串:

(...)
<TEST NAME="KBC1" ID="0034" PRA="RUNNING DOG" />
<TEST NAME="KBC2" ID="0264" PRB="STANDING CAT" />
<TEST NAME="KBC1" ID="4632" TEM="HAPPY DOG" />
<TEST NAME="KBC6" ID="4492" LST="FLYING BIRD" />
(...)

只有name=“kbc1”和tem=“(…)”包含单词happy时,程序才应该检查单词dog。第三条线也是这样。其部分工作方式如下:

Pattern p1 = Pattern.compile("<TEST NAME="KBC1"(.*)\/>");

如果tem=“(…)”包含单词“dog”而不创建两个模式,我如何包含用于检查的case?

4nkexdtk

4nkexdtk1#

我希望这个基本代码能解决你的查询。

String input="<TEST NAME=\"KBC1\" ID=\"4632\" TEM=\"HAPPY DOG\" />";

        String regex = "^(?=.*\\bTEST NAME\\b)(?=.*\\bKBC1\\b)(?=.*\\bTEM\\b)(?=.*\\bHAPPY\\b)(?=.*\\bDOG\\b).*$";

        if(Pattern.matches(regex, input)) {
            System.out.println("match");
        }else {
            System.out.println("unmatch");
        }

相关问题