正则表达式规则
查看我其他地方的详解:linux正则表达式
正则表达式与系统无关,与语言无关,都是统一规则
java使用
- 常规用法一
public static void main(String[] args) {
String reg = "[a-z]+[0-9]+";
Pattern p = Pattern.compile(reg);
String str = "abc001122a1@";
Matcher m =p.matcher(str);
while(m.find()){
System.out.println(m.groupCount());
System.out.println(m.group(0));
// System.out.println(m.group(1));
//System.out.println(m.group(2));
}
}
输出:
0
abc001122
0
a1
- 常规用法二
public static void main(String[] args) {
String reg = "[a-z]+[0-9]+";
Pattern p = Pattern.compile(reg);
String str = "abc001122";
Matcher m =p.matcher(str);
System.out.println(m.matches());
}
输出:
true
说明,需要str完全匹配正则,才会输出true,部分匹配依旧输出false
group用法
public static void main(String[] args) {
String reg = "([a-z]+)([0-9]+)";
Pattern p = Pattern.compile(reg);
String str = "abc001122a1@";
Matcher m =p.matcher(str);
while(m.find()){
System.out.println("=======\n"+m.group(0));
System.out.println(m.groupCount());
for(int i=1;i<=m.groupCount();i++){
System.out.println(m.group(i));
}
}
}
输出:
=======
abc001122
2
abc
001122
=======
a1
2
a
1
- 根据分组输出,发现在pattern中添加括号 () ,java会把它定义为一个group,我们就可以根据匹配到的目标结果,来依次将每个group匹配中的内容输出,
本文详细介绍了Java中正则表达式的使用,包括常规匹配方式和分组匹配。通过示例代码展示了如何创建正则模式,匹配字符串,并输出匹配结果。同时解释了分组的概念,以及如何通过group方法获取匹配的子串。
2262

被折叠的 条评论
为什么被折叠?



