Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用正则表达式检查多个字符串之间的特定字符串?_Java_Regex - Fatal编程技术网

Java 如何使用正则表达式检查多个字符串之间的特定字符串?

Java 如何使用正则表达式检查多个字符串之间的特定字符串?,java,regex,Java,Regex,我有以下字符串: (...) <TEST NAME="KBC1" ID="0034" PRA="RUNNING DOG" /> <TEST NAME="KBC2" ID="0264" PRB="STANDING CAT" /> <TEST NAME="KBC1" ID="4632" TEM="HAP

我有以下字符串:

(...)
<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"(.*)\/>");
Pattern p1=Pattern.compile(“”);

如何在不创建两种模式的情况下,包含检查TEM=“(…)”是否包含单词“DOG”的案例?

我希望这段基本代码能够解决您的问题

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");
        }
        
字符串输入=”;
字符串regex=“^(?=.*\\b测试名称\\b)(?=.*\\bKBC1\\b)(?=.*\\bTEM\\b)(?=.*\\bHAPPY\\b)(?=.*\\blog\\b)。*$”;
if(Pattern.matches(正则表达式,输入)){
System.out.println(“匹配”);
}否则{
系统输出打印项次(“不匹配”);
}

可能是
“]*\\bDOG\\b[^>]*)/>“
@RoyalBg是的,这正是我想要的。我不知道,你可以把“*?”一个接一个地锁起来。。。非常感谢你。