java-regex

Matcher的Group使用

正则表达式中,()表示一个分组,使用分组可以将一段文本按正则表达式解析成多段(多个分组),以下是演示代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatchGroup {
/**
* @param args
*/
public static void main(String[] args) {
Pattern p = Pattern.compile("(.*),(.*),(.*),(.*)"); // 4组文本按,进行分割
Matcher m = p.matcher("user1,tom,m,23");
System.out.println("matcher groupCount = " + m.groupCount());
if (m.matches()) { // 必须先执行该方法,才能真正将文本分组分割
for (int i = 0; i < m.groupCount(); i++) {
System.out.println("group[" + (i+1) + "] = " + m.group(i + 1)); // Matcher的group从1开始记数
}
}
}
}

运行结果:

1
2
3
4
5
matcher groupCount = 4
group[1] = user1
group[2] = tom
group[3] = m
group[4] = 23