在正規表示式符合後擷取文字
在正規表示式(Regex) 領域,從文字中擷取特定資訊可能具有挑戰性。一項常見任務是檢索特定匹配項後面的文字。本文將引導您完成此過程,擴展您在「sentence」字串後查找文字的特定要求。
您現有的正規表示式模式「sentence(.*)」成功辨識了「sentence」字串。但是,它也會捕獲匹配的文字本身,這不是您想要的結果。
要實現您的目標,請考慮使用正向回顧斷言。此功能允許您匹配字串中的特定位置,而無需實際使匹配的文字成為結果的一部分。在您的情況下,您希望匹配“句子”之後的位置而不包含它。
以下修改後的正規表示式模式可以實現此目的:
(?<=sentence).*
模式細分:
在Java 中,您可以利用此模式來檢索所需的文本,如下所示:
Pattern pattern = Pattern.compile("(?<=sentence).*"); Matcher matcher = pattern.matcher("some lame sentence that is awesome"); boolean found = false; while (matcher.find()) { System.out.println("I found the text: " + matcher.group().toString()); found = true; } if (!found) { System.out.println("I didn't find the text"); }
此程式碼將列印文字「that太棒了」正如預期的那樣,不包含“句子”字串。
以上是如何使用正向後向斷言在正規表示式匹配後提取文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!