我想了解下面的Java正则表达式程序是如何工作的。我无法理解在程序的输出的第二行Java正则表达式模式匹配
String line = "This order was placed for QT3000! OK?";
String pattern = "(.*)(\\d+)(.*)";
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find()) {
System.out.println("Found value: " + m.group(0));
System.out.println("Found value: " + m.group(1));
System.out.println("Found value: " + m.group(2));
这会产生这样的
Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT300
Found value: 0
我理解的输出,我们在字符串中搜索的模式是一个序列是一个数字(\d+
)与之前的所有内容(.*)
及之后的内容(.*)
。如果我在这里错了,请纠正我。
我知道m.group(0)返回整个字符串。我不明白输出的第二行。 已找到值:该订单已发给QT300。这里发生了什么?
感谢您的回复。我能够理解这是如何与您的解释 –