Java 如何只匹配等于模式,换句话说不包含模式
如何在java正则表达式模式中只检查“I1”。输入模式是“I1”、“I6”。。。。。“I11”。在这种情况下,“I1”、“I12”、“I15”、“I14”、“I13”、“I16”和“I11”是相同的“I1”输入模式。如何求解?您可以使用简单的正则表达式模式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
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));