Using Java regex

Not to introduce regex grammar(If you want to know, you search it.), but some key points about using java regex.

1. How to use regex in Java?

String s1 = "ab12cd34ef";
String pattern = "(\\d+)([a-z]+)";
Pattern p = Pattern.compile(pattern);  // First step: Pattern compile regex.
Matcher m = p.matcher(s1);             // Second step: matcher the str.
while (m.find()) {                     // must find() before any group().
  System.out.println(m.group());  //== group(0). output: 12cd \n 34ef.
  //System.out.println(m.group(1));  //output: 12 \n 34. The first ().
  //System.out.println(m.group(2));  //output: cd \n ef. The second ().
}

2. String matches()

// Show code first.
String s = "ab12cd34";
boolean b = s.matches("[a-z]+\\d+[a-z]{0,}\\d+");  // b is true.
boolean b1 = s.matches("[a-z]+\\d+");  // b1 is false.
// s.matches() is to match the whole string.

So what happened in matches() ?

s.matches(String regex)  -> return Pattern.matches(regex, this).
----
Pattern.matches(regex, this) ->
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(this);  // this means the string itself.
return m.matches();
----
m.matches() -> return match(from, ENDANCHOR);  
// ENDANCHOR = 1, which means to match all the input.

So in String.matches(String regex), regex match all the string.

你可能感兴趣的:(Using Java regex)