Home >Java >javaTutorial >How to Extract Text After a Regex Match Using a Positive Lookbehind Assertion?
Retrieving Text after Regex Match
In the realm of regular expressions (Regex), extracting specific information from text can be challenging. One common task is retrieving the text that follows a particular match. This article will guide you through this process, expanding on your specific requirement to find text after the "sentence" string.
Your existing Regex pattern, "sentence(.*)", successfully identifies the "sentence" string. However, it also captures the matched text itself, which is not your desired outcome.
To achieve your goal, consider utilizing a positive lookbehind assertion. This feature allows you to match a certain position in a string, without actually making the matched text a part of the result. In your case, you want to match a position right after "sentence" without including it.
The following modified Regex pattern accomplishes this:
(?<=sentence).*
Breakdown of the pattern:
In Java, you can utilize this pattern to retrieve the desired text as follows:
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"); }
This code will print the text "that is awesome" as expected, without including the "sentence" string.
The above is the detailed content of How to Extract Text After a Regex Match Using a Positive Lookbehind Assertion?. For more information, please follow other related articles on the PHP Chinese website!