Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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,如何在java正则表达式模式中只检查“I1”。输入模式是“I1”、“I6”。。。。。“I11”。在这种情况下,“I1”、“I12”、“I15”、“I14”、“I13”、“I16”和“I11”是相同的“I1”输入模式。如何求解?您可以使用简单的正则表达式模式I1\d*即I1后跟任意数字 String allString = " I1 + I6 + I9 + I8 + I3 + I2 + I20 + I21 + I18 + I23 + I28 + I27 + I31 + I24 + I12 + I1

如何在java正则表达式模式中只检查“I1”。输入模式是“I1”、“I6”。。。。。“I11”。在这种情况下,“I1”、“I12”、“I15”、“I14”、“I13”、“I16”和“I11”是相同的“I1”输入模式。如何求解?

您可以使用简单的正则表达式模式
I1\d*
I1
后跟任意数字

String allString = " I1 + I6 + I9 + I8 + I3 + I2 + I20 + I21 + I18 + I23 + I28 + I27 + I31 + I24 + I12 + I15 + I14 + I13 + I16 + I11 " 
在Java中,我们也需要转义
\
,因此最终的模式将成为
I1\\d*

输出:

I1(?!\d)
将匹配I1,但不匹配I11、I12等

I1, I18, I12, I15, I14, I13, I16, I11, 
输出:


I1

@AvinashRaj他想要与包含I1*模式的数字相同的模式,因此正则表达式可能是
I1。\d*
我的问题是如何只检查匹配模式你能发布一些预期的输出和尝试吗
I1, I18, I12, I15, I14, I13, I16, I11, 
    String allString = " I1 + I6 + I9 + I8 + I3 + I2 + I20 + I21 + I18 + I23 + I28 + I27 + I31 + I24 + I12 + I15 + I14 + I13 + I16 + I11 ";
    Pattern p = Pattern.compile("I1(?!\\d)");
    Matcher matcher = p.matcher(allString);
    matcher.find();
    System.out.println(matcher.group(0));