了解Java 正規表示式擷取群組
在此程式碼片段中,我們使用Java 的正規表示式(regex) 函式庫來擷取字串的一部分。正規表示式定義為“(.)(d )(.)”,其中:
正規表示式執行
當字串「This order was located 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()」方法存取每個群組的匹配值,如下面的程式碼片段所示:
<code class="java">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)); }</code>
以上是Java 正規表示式中的擷取群組如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!