regex
Simple positive Lookbehind
This is an example of a simple positive look behind. Positive look behind methods assert the existence of a pattern to the left of the position of a String. You can form positive look behinds by opening a noncapturing group with (?<=. Positive looking behind in a String implies that you should:
- Compile a given String regular expression to a Pattern, using
compile(string regex)
API method of Pattern. The given regex in the example is a noncapturing group with (?<= a followed by a non white space character. - Use
matcher(CharSequence input)
API method of Pattern to create a Matcher that will match the given String input against this pattern. - While the matcher finds the next subsequence of the input sequence that matches the pattern, with
find()
API method of Matcher get the input subsequence matched, withgroup()
API method of Matcher and print it.
Let’s take a look at the code snippet that follows:
package com.javacodegeeks.snippets.core; import java.util.regex.Matcher; import java.util.regex.Pattern; public class LookBehind { public static void main(String args[]) throws Exception { String reg = "(?<=http://)\S+"; Pattern p = Pattern.compile(reg); String str = "http://www.a.com."; Matcher m = p.matcher(str); while (m.find()) { String output = ":" + m.group() + ":"; System.out.println(output); } } }
Output:
:www.a.com.:
This was an example of a simple positive look behind assertion in Java.