java使用Matcher

判断字符串是否匹配正则

boolean matches = Pattern.matches("(\\d{4})-((\\d{2})-(\\d{2}))", "2017-04-25");

Matcher的用法

案例代码

public static final String DATE_STRING = "2017-04-25";/*** 普通捕获,使用左括号来分组*/public static final String P_COMM = "(\\d{4})-((\\d{2})-(\\d{2}))";/*** 使用名字捕获,使用 ?<name> 来捕获,同时这个不影响使用group组来捕获,一个左括号仍然代表一组*/public static final String P_NAMED = "(?<year>\\d{4})-(?<md>(?<month>\\d{2})-(?<date>\\d{2}))";/*** 反捕获,使用符号 ?: 紧跟在左括号( 的后面,表示忽略这个左括号包含的部分*/public static final String P_UNCAP = "(?:\\d{4})-((\\d{2})-(\\d{2}))";public static void main(String[] args) {Pattern patternByComm = Pattern.compile(P_COMM);Matcher matcherByComm = patternByComm.matcher(DATE_STRING);boolean matches = Pattern.matches("(\\d{4})-((\\d{2})-(\\d{2}))", "2017-04-25");matcherByComm.find();//必须要有这句System.out.println("================================");System.out.println("普通捕获组");System.out.printf("matcher.group(0) value:%s", matcherByComm.group(0));System.out.printf("\nmatcher.group(1) value:%s", matcherByComm.group(1));System.out.printf("\nmatcher.group(2) value:%s", matcherByComm.group(2));System.out.printf("\nmatcher.group(3) value:%s", matcherByComm.group(3));System.out.printf("\nmatcher.group(4) value:%s", matcherByComm.group(4));System.out.println("");System.out.println("================================");Pattern patternByName = Pattern.compile(P_NAMED);Matcher matcherByName = patternByName.matcher(DATE_STRING);matcherByName.find();System.out.printf("\n===========使用名称获取=============");System.out.printf("\nmatcher.group(0) value:%s", matcherByName.group(0));System.out.printf("\n matcher.group('year') value:%s", matcherByName.group("year"));System.out.printf("\nmatcher.group('md') value:%s", matcherByName.group("md"));System.out.printf("\nmatcher.group('month') value:%s", matcherByName.group("month"));System.out.printf("\nmatcher.group('date') value:%s", matcherByName.group("date"));System.out.println("================================");System.out.println("");matcherByName.reset();System.out.print("\n===========使用编号获取=============");matcherByName.find();System.out.printf("\nmatcher.group(0) value:%s", matcherByName.group(0));System.out.printf("\nmatcher.group(1) value:%s", matcherByName.group(1));System.out.printf("\nmatcher.group(2) value:%s", matcherByName.group(2));System.out.printf("\nmatcher.group(3) value:%s", matcherByName.group(3));System.out.printf("\nmatcher.group(4) value:%s", matcherByName.group(4));System.out.println("================================");System.out.println("");System.out.print("\n===========反捕获=============");Pattern patternUncap = Pattern.compile(P_UNCAP);Matcher matcherUncap = patternUncap.matcher(DATE_STRING);matcherUncap.find();System.out.printf("\nmatcher.group(0) value:%s", matcherUncap.group(0));System.out.printf("\nmatcher.group(1) value:%s", matcherUncap.group(1));System.out.printf("\nmatcher.group(2) value:%s", matcherUncap.group(2));System.out.printf("\nmatcher.group(3) value:%s", matcherUncap.group(3));}
输出结果
普通捕获组
matcher.group(0) value:2017-04-25
matcher.group(1) value:2017
matcher.group(2) value:04-25
matcher.group(3) value:04
matcher.group(4) value:25===========使用名称获取=============
matcher.group(0) value:2017-04-25matcher.group('year') value:2017
matcher.group('md') value:04-25
matcher.group('month') value:04
matcher.group('date') value:25===========使用编号获取=============
matcher.group(0) value:2017-04-25
matcher.group(1) value:2017
matcher.group(2) value:04-25
matcher.group(3) value:04
matcher.group(4) value:25===========反捕获=============
matcher.group(0) value:2017-04-25
matcher.group(1) value:04-25
matcher.group(2) value:04
matcher.group(3) value:25

java使用Matcher相关推荐

  1. Java正则表达式--Matcher.group函数的用法

    https://www.cnblogs.com/jiafuwei/p/6080984.html Java正则表达式--Matcher.group函数的用法 原来,group是针对()来说的,group ...

  2. Java Pattern.matcher()方法具有什么功能呢?

    转自: Java Pattern.matcher()方法具有什么功能呢? 下文笔者讲述Pattern.matcher()方法的功能简介说明,如下所示: Pattern.matcher()方法的功能:用 ...

  3. java的matcher方法,Matcher 的方法

    # Matcher 的方法 本节介绍了 Matcher 类的一些其他有用的方法.为了方便起见,下列方法根据功能进行分组. # 索引方法 索引方法提供了有用的索引值,它们精确地显示了输入字符串中匹配的位 ...

  4. java 正则表达式 Matcher

    matches&lookingAt&find Pattern p=Pattern.compile("\\d"); Matcher m=p.matcher(" ...

  5. JAVA正则表达式,matcher.find()和 matcher.matches()的区别

    1.find()方法是部分匹配,是查找输入串中与模式匹配的子串,如果该匹配的串有组还可以使用group()函数. matches()是全部匹配,是将整个输入串与模式匹配,如果要验证一个输入的数据是否为 ...

  6. Java正则表达式 - Matcher

    Matcher类: 使用Matcher类,最重要的一个概念必须清楚: 组(Group) ,在正则表达式中 ()定义了一个组,由于一个正则表达式可以包含很多的组,所以下面先说说怎么划分组的, 以及这些组 ...

  7. java的matcher方法_Java-Android-正则表达式-Matcher方法

    之前我们看了下正则的基本语法规则以及简单的正则创建和匹配写法.这里我们就重点关注下具体的匹配对象提供的一些方法,基本都过一遍,然后我们针对邮箱.电话等做一些练习(过程中不会的我们再回过头的复习一下) ...

  8. java有matcher类,Java正则式Matcher类问题

    import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern; public clas ...

  9. Java Pattern Matcher 正则表达式需要转义的字符

    见:http://blog.csdn.net/bbirdsky/article/details/45368709 /*** 转义正则特殊字符 ($()*+.[]?\^{},|)* * @param k ...

最新文章

  1. IntelliJ IDEA 2019 快捷键终极大全,速度收藏!
  2. C++ transform 浅析
  3. java filter注入_如何使用Filter过滤请求中的SQL注入攻击
  4. App Store 排名获取。
  5. mysql启动错误排查-无法申请足够内存
  6. docker安装redis并将配置文件和数据文件映射到外部
  7. 如何添加页签_【康复晓讲台】不同失能者如何选择适合自己的轮椅(二)
  8. python好用的内置库_第42p,time库,Python中优秀的内置库
  9. WCF存储图片到指定文件夹下
  10. 【3dmax千千问】初学3dmax插件神器第20课:3dmax渲染教程|效果图大师和疯狂模渲大师怎么使用3dmax软件自带的渲染器去设计并渲染三维效果图场景的3dmax模型?
  11. ios 添加浮动效果_自定义悬浮窗详解(模拟IOS小球拖动,轮盘滑动)
  12. dsp和通用计算机的区别,DSP处理器与通用处理器的比较
  13. UE4 ACharacter部分方法介绍
  14. nepctf2021
  15. win10系统脚本批处理开启和停止服务器,批处理命令一键彻底关闭WIN10自动更新...
  16. ACL 2022 | DialogVED:用于对话回复生成的预训练隐变量编码-解码模型
  17. 调查计算机对运算能力的影响,计算器对运算能力的影响
  18. 音视频开发——概述(含TUTK demo iOS)
  19. 美通企业周刊 | 中国平安将深度参与深圳公共住房建设;北京环球度假区将引入IMAX影院...
  20. 公式编辑神器-MathType

热门文章

  1. linux递归删除空文件夹,Shell脚本实现递归删除空文件夹
  2. 吃了一个自己做的煎鸡蛋_拔剑-浆糊的传说_新浪博客
  3. html日历功课表代码,自定义透明的桌面课程表带日历
  4. 取得手机通话历史记录
  5. sonar扫的是class还是Java_用Sonar扫描sonar-java项目提示需要配置sonar.java.binaries参数的问题...
  6. JDBC 在IDEA中配置mysql8驱动过程详解
  7. AKH-0.66K型开口式电流互感器,可带电操作
  8. [互助卡片]2018京东618集汪汪卡分京豆怎么玩?开奖时间!
  9. linux安装rpm提示nokey,Linux rpm安装问题解决
  10. 2019.2.1 自主训练日志