• 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. python 单例模式

    单例模式,也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在 用装饰器方式实现单例模式 #!/usr/bin/python # coding=utf-8 d ...

  2. Tomcat 利用server.xml进行其他盘符的其他项目映射的部署以及JSP引用其他盘符的图片(虚拟目录及虚拟路径)

    Tomcat 利用server.xml进行项目映射的部署 2013-07-17 15:14 12843人阅读 评论(4) 收藏 举报  分类: web 开发(5)  版权声明:本文为博主原创文章,欢迎 ...

  3. 连接池的实现 redis例子

    # -*- encoding:utf-8 -*- # import pymysql # # conn = pymysql.connect(host="127.0.0.1", por ...

  4. RabbitMQ学习

    参考链接:http://www.cnblogs.com/leocook/p/mq_rabbitmq_0.html

  5. Linux C 信号 pause、sigsuspend 的相同与区别

    pause函数:       功能:让进程暂停直到信号出现   #include<unistd.h>      intpause();    函数说明:pause()会令目前的进程暂停(进 ...

  6. ACM之鸡血篇

    一匹黑马的诞生 故事还要从南京现场赛讲起,话说这次现场赛,各路ACM英雄豪杰齐聚南京,为争取亚洲总舵南京分舵舵主之职位,都使出了看 家本领,其中有最有实力的有京城两大帮清华帮,北大帮,南郡三大派上交派 ...

  7. Visual Studio 版本转换工具WPF版开源了

    想法的由来 入职一家新公司,领导给了个任务,要编写一个视频监控软件,等我编写调试好,领导满意了以后,这个软件要加入到公司的一个软件系统中去(这个添加工作不用我来做,嘻嘻,看着自己的软件被别人使用,心情 ...

  8. Python-pandas

    Python-pandas Python 中处理时间序列的主要工具是 pandas 库. 1.pannas 基础 1.1使用 DataFrame 类的第一步 #!/etc/bin/python #co ...

  9. Jquery制作--循环滚动列表

    自己模仿JQ插件的写法写了一个循环滚动列表插件,支持自定义上.下.左.右四个方向,支持平滑滚动或者间断滚动两种方式,都是通过参数设置.JQ里面有些重复的地方,暂时没想到更好的方法去精简.不过效果还是可 ...

  10. getchar()(转)

    出处:http://www.cnblogs.com/jiangjun/archive/2012/05/16/2503676.html 1.从缓冲区读走一个字符,相当于清除缓冲区 2.前面的scanf( ...