我想了解下面的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。這裏發生了什麼?
感謝您的回覆。我能夠理解這是如何與您的解釋 –