• Pattern:正则表达式的模式类
  • 获取对象的函数Pattern pattern=Pattern.compiler(regex);
  • 功能函数:
  • 1.pattern.split(String targetString);
 
  • Matcher:正则表达式的匹配类
  • 获取对象的函数Matcher matcher=pattern.matcher(String targetString);
  • 功能函数:
  • 匹配功能
  • 1.matcher.mathces();
  • 2.matcher.reset(String targetString);
  • 查找功能
  • 1.方式一:
  • matcher.find(int statIndex);
  • 例子:
    • while(matcher.find(0)){
      • matcher.start();//匹配的起始Index
      • matcher.end()-1;// 匹配的终止Index
    • }
  • 2.方式二:
  • matcher.matches();//全词匹配,类似String.matches(String s);
 
  • 3.方式三:
  • matcher.lookingAt();//—只能匹配一次,matcher.find(0);
  • 注意:
  • matcher.find()会收到lookingAt()的影响
  • 1.先执行matcher.lookingAt();//假设匹配
  • 2.matcher.find();//只会从第二个地方开始匹配(如果有的话)
 
  • 其他的功能函数
  • matcher.start();//匹配的Start Index
  • matcher.end();//匹配的End Index
  • Matcher.appendReplacement(StringBuffer,”replace”);//把匹配的部分进行替换”replace”其他的部分不变
  • Matcher.appendTail(StringBuffer stringBuffer);
  • 例子:
Pattern pattern = Pattern.compile("\\d+");

Matcher matcher=pattern.matcher("123yangyun 123 unun123ddd 143 54647 68678 67568");
StringBuffer stringBuffer=new StringBuffer();
while(matcher.find()){
    System.out.println(matcher.start()+"---"+matcher.end());
    matcher.appendReplacement(stringBuffer,"!!!");
    //matcher.appendTail(stringBuffer);
    System.out.println(stringBuffer.toString());
}

结果:

0---3
!!!
11---14
!!!yangyun !!!
19---22
!!!yangyun !!! unun!!!
26---29
!!!yangyun !!! unun!!!ddd !!!
30---35
!!!yangyun !!! unun!!!ddd !!! !!!
36---41
!!!yangyun !!! unun!!!ddd !!! !!! !!!
42---47
!!!yangyun !!! unun!!!ddd !!! !!! !!! !!!
  • 例子:
Pattern pattern = Pattern.compile("\\d+");

Matcher matcher=pattern.matcher("123yangyun 123 unun123ddd 143 54647 68678 67568");
while(matcher.find()){
    StringBuffer stringBuffer=new StringBuffer();
    System.out.println(matcher.start()+"---"+matcher.end());
    matcher.appendReplacement(stringBuffer,"!!!");
    matcher.appendTail(stringBuffer);
    System.out.println(stringBuffer.toString());
}
0---3
!!!yangyun 123 unun123ddd 143 54647 68678 67568
11---14
yangyun !!! unun123ddd 143 54647 68678 67568
19---22
unun!!!ddd 143 54647 68678 67568
26---29
ddd !!! 54647 68678 67568
30---35
!!! 68678 67568
36---41
!!! 67568
42---47
!!!
 
 
  • 4.Group————与模式regex有关
  • 有括号才有组
  • Pattern pattern=Pattern.compile(Regex);//eg:String regex=new String(“([a-z]+)(\\d+)");
  • Matcher matcher=pattern.Matcher(String target);//目标字符串target
  • while(matcher.find()){
  • System.out.println(matcher.group());//匹配的部分
  • System.out.print(matcher.groupCount());//一定是2
  • }
 

10.Pattern 和 Matcher的更多相关文章

  1. JAVA正则表达式 Pattern和Matcher(转)

    1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher.        首先一个Pattern实例订制了一 ...

  2. java14-4 Pattern和Matcher类的使用

     获取功能  Pattern和Matcher类的使用  模式和匹配器的基本使用顺序 import java.util.regex.Matcher; import java.util.regex.Pat ...

  3. JAVA 正则 Pattern 和 Matcher

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. ...

  4. Pattern和Matcher

    java util本身提供了Pattern和Matcher(java.util.regex.Pattern,Matcher),两个类均是与正则表达式相关的类,其中: java.util.regex是一 ...

  5. java正则表达式Pattern和Matcher

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. ...

  6. Pattern()和Matcher() 用法

    1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.  它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一个 ...

  7. Java基础知识强化77:正则表达式之获取功能(Pattern 和 Matcher类的使用)

    1. 获取功能: Pattern 和 Matcher类结合使用 2. 使用案例: package cn.itcast_05; import java.util.regex.Matcher; impor ...

  8. java Pattern和Matcher详解

    结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String ...

  9. JAVA正则表达式 Pattern和Matcher

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. ...

随机推荐

  1. 使用MyEclipse 9.0 创建 struts2 的HelloWorld 工程

    作为眼高手低的典范,必须痛改前非,好好动手多做开发! 本文是struts2的入门指导,权当笔记! 在MyEclipse中,配置Apache tomcat 7.x 服务器 创建新的Web project ...

  2. 《web全栈工程师的自我修养》读书笔记

    有幸读了yuguo<web全栈工程师的自我修养>,颇有收获,故在此对读到的内容加以整理,方便指导,同时再回顾一遍书中的内容. 概览 整本书叙述的是作者的成长经历,通过经验的分享,给新人或者 ...

  3. Linux vmstat使用

    Vmstat命令的简单使用 Vmstat命令是Linux/unix常用的系统监控工具,可以方便的查看CPU.内存.swap分区.IO读写等情况. Vmstat常用的参数主要有两个:1.采集的时间间隔 ...

  4. sqlserver 2005 数据误删恢复

    今天同事不小心将一个很重要的数据表中的数据删除了,找了很多人都没办法恢复.我在网上搜索了一下资料,发现有一个方法可以一试,具体如下 http://www.knowsky.com/616730.html ...

  5. Jquery制作--美化下拉框

    平常我们用的原生select下拉框,大部分样式没办法修改,导致在不同的浏览器里面会跟设计图的风格大相径庭.所以为了能让它美化起来,就用JQ模拟了一个下拉框,可以随意定义样式.原生的下拉框也保留在div ...

  6. js瀑布流 原理实现揭秘 javascript 原生实现

    web,js瀑布流揭秘 瀑布流再很久之前流行,可能如我一样入行晚的 ,可能就没有机会去使用.但是这个技术终究是个挺炫酷的东西,花了一个上午来研究,用原生js实现了一个,下面会附上源码,供大家解读. 说 ...

  7. MySQL中的常用工具

    一.mysql 客户端连接工具 二.myisampack MyISAM表压缩工具 三.mysqladmin MySQL管理工具 四.mysqlbinlog 日志管理工具 五.mysqlcheck My ...

  8. C#微信公众号开发系列教程三(消息体签名及加解密)

    http://www.cnblogs.com/zskbll/p/4139039.html C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C ...

  9. linux之netstat命令

    netstat用于显示各种网络相关的信息,如网络连接,路由表接口状态(interface statistics), masquerade连接,多播成员(Multicast Memberships)等等 ...

  10. kvm虚拟机静态和动态迁移

    一.kvm虚拟机静态迁移 1.静态迁移就是虚拟机在关机状态下,拷贝虚拟机虚拟磁盘文件与配置文件到目标虚拟主机中,实现的迁移. (1)虚拟主机各自使用本地存储存放虚拟机磁盘文件 本文实现基于本地磁盘存储 ...