了解Java 正規表示式擷取群組
在此程式碼片段中,我們使用Java 的正規表示式(regex) 函式庫來擷取字串的一部分。正規表示式定義為“(.)(\d )(.)”,其中:
正規表示式執行
當針對字串「This order was put for QT3000! OK?」執行正規表示式時,它會產生以下結果:
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
理解貪婪量詞
正則表達式中使用的預設量詞是貪婪的,這意味著它匹配盡可能多的字元以滿足下一組。在這種情況下,“.*”匹配整個字串,直到找到第一個數字,不為第三組留下任何字元。
使用勉強量詞
來匹配只有必要的字符,我們可以使用勉強的量詞,用問號表示。將“(.)”替換為“(.?)”匹配可能的最少字元數,導致以下輸出:
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
捕獲組的優點
捕獲組允許我們提取匹配字串的特定部分以供進一步使用。在這個例子中,我們可以透過「Matcher」物件的「group()」方法存取每個群組的匹配值,如下面的程式碼片段所示:
Pattern pattern = Pattern.compile("(.*?)(\\d )(.*)");
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
System.out.println("group 1: " matcher.group(1));
System.out.println("group 2: " matcher.group(2));
System.out.println("group 3: " matcher.group(3));
}
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3