java 正则匹配输出匹配内容
2023-09-27 14:26:04 时间
正则表达式规则
查看我其他地方的详解: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项目中是如何获取文件地址的吗?
- Java BigDecimal toString() 的转换和输出
- Java算法-符号~
- 天了噜,Java 8 要停止维护了!
- 基于Tire树和最大概率法的中文分词功能的Java实现
- Java面试官最爱问的垃圾回收机制,【漫画(3)
- 20个高级Java面试题汇总
- Java基础之==与equal()的区别
- Java 读取ANSI文件中文乱码问题解决方式[转]
- Java SE之初探反射机制
- 【UML】Java代码与UML模型相互转换方法
- Java PDF转换成图片并输出给前台展示
- java项目命令启动 JAVA-jar包运行及日志输出
- Java程序:从命令行接收多个数字,求和并输出结果
- java 操作 RabbitMQ 发送、接受消息
- 发送POST请求时发生 java-org.springframework.http.converter.HttpMessageNotReadableException
- Java输出中文乱码
- JAVA实现输出九九乘法表
- Java输入三条边判断是否能组成三角形,若能构成则输出什么三角形
- JAVA实现数字倒序输出
- java的输出类
- Java finally语句到底是在return之前还是之后执行?
- 1027 打印沙漏(JAVA)
- Java数组详细介绍
- java实现:将一个数逆序输出
- 【jvm我能讲两小时005】java字段名和方法名长度限制是多少,为什么?