“1 ((A)(B(C)))
2 \A
3 (B(C))
4 (C) “
是J从DK API中文版Pattern类中的摘录中。比对了JDK API英文版的Pattern类,发现“2 \A ”是排版错了。英文版本如下:
1 ((A)(B(C)))
2 (A)
3 (B(C))
4 (C)
正规中的组和捕获代码示例如下:- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
-
- public class PatternTest {
-
- public static void main(String[] args) {
- String text = "<textarea rows=\"20\" cols=\"70\">nexus maven repository index properties updating index central</textarea>";
- //下面的正则表达式中共有四个捕获组:(<textarea.*?>)、(.*?)、(</textarea>)和整个匹配到的内容
- String reg = "(<textarea.*?>)(.*?)(</textarea>)";
- Pattern p = Pattern.compile(reg);
- Matcher m = p.matcher(text);
- while (m.find()) {
- System.out.println(m.group(0)); // 整个匹配到的内容
- System.out.println(m.group(1)); // (<textarea.*?>)
- System.out.println(m.group(2)); // (.*?)
- System.out.println(m.group(3)); // (</textarea>)
- }
- }
- }
复制代码 更多的讲解见:JAVA正则表达式-捕获组与非捕获组 |