• 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. div 纯数字很长时无法折行解决

    <div style="width:100%;word-wrap:break-word;word-spacing:normal;"> </div> 加上红色 ...

  2. Eclipse中的搜索快捷键

    Ctrl+H 全文搜索Ctrl+F 当前文件Ctrl+Shift+T 类文件Ctrl+Shift+R 资源文件

  3. Hive metastore三种配置方式

    http://blog.csdn.net/reesun/article/details/8556078 Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适 ...

  4. Qt控件样式 Style Sheet Demo

    迟来的笔记,作为一个程序员每日记事已养成习惯,离开许久,不知不觉已喜欢用文字表达对技术的热爱,学无止境! Qt – 一个跨平台应用程序和UI开发框架:它包括跨平台类库.集成开发工具和跨平台 IDE,使 ...

  5. scrapy 学习笔记

    1.scrapy 配合 selenium.phantomJS 抓取动态页面, 单纯的selemium 加 Firefox浏览器就可以抓取动态页面了, 但开启窗口太耗资源,而且一般服务器的linux 没 ...

  6. ubuntu14.04下搭建python+mysql环境

    简略记录ubuntu14.04下搭建python操作的mysql服务器的过程和其中遇到的问题及解决方法. 第一部分: 安装mysql 安装步骤:1. sudo apt-get install mysq ...

  7. Android消息处理

    基本概念: Message:消息,其中包含了消息ID.what,消息处理对象.obj以及处理的数据.arg1.arg2等,由MessageQueue统一列队,终由Handler处理. Handler: ...

  8. jquery复选框 选中事件 及其判断是否被选中

    jquery复选框 选中事件 及其判断是否被选中 (2014-07-25 14:03:54) 转载▼ 标签: jquery复选框选中事件 分类: extjs jquery   今天做了 显示和不显示密 ...

  9. 再说表单验证,在Web Api中使用ModelState进行接口参数验证

    写在前面 上篇文章中说到了表单验证的问题,然后尝试了一下用扩展方法实现链式编程,评论区大家讨论的非常激烈也推荐了一些很强大的验证插件.其中一位园友提到了说可以使用MVC的ModelState,因为之前 ...

  10. Java的国际化(i18n)

    http://blog.csdn.net/csuliky/article/details/4225800 1. Java国际化简介 Java既然作为一个跨平台的语言就必然要在各种不同的语言环境中使用, ...