The possessive quantifiers always eat the entire input string, trying once (and only once) for a match. Unlike the greedy quantifiers, possessive quantifiers never back off, even if doing so would allow the overall match to succeed.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PossessiveQuantifierDemo {
public static void main(String[] args) {
String[] regexs = {
"x?+",
"x*+",
"x++",
"x{2}+",
"x{2,}+",
"x{2,5}+"
};
String input = "xxxxxxx";
for (String r : regexs) {
Pattern pattern = Pattern.compile(r);
Matcher matcher = pattern.matcher(input);
//
// Find every match and print it
//
System.out.println("------------------------------");
System.out.format("Regex: %s %n", r);
while (matcher.find()) {
System.out.format("Text \"%s\" found at %d to %d.%n",
matcher.group(), matcher.start(),
matcher.end());
}
}
}
}
Tuesday, March 6, 2012
How do I use possessive quantifier regex in java?
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment