转自:

Matcher类中方法简介说明

Matcher类中索引方法

索引方法的功能:
提供了索引信息,
返回匹配字符串的位置信息

索引方法如下所示:

编号 方法及备注说明
1 public int start() 返回以前匹配的初始索引
2 public int start(int group) 返回在以前的匹配操作期间,由给定组所捕获的子序列的初始索引
3 public int end() 返回最后匹配字符之后的偏移量
4 public int end(int group) 返回在以前的匹配操作期间,由给定组所捕获子序列的最后字符之后的偏移量

Matcher类中查找方法

查找方法的功能:
  用于检测输入字符串并返回一个布尔值
其布尔值表示此匹配模式是否匹配成功

编号 方法及备注说明
1 public boolean lookingAt() 尝试将从区域开头开始的输入序列与该模式匹配
2 public boolean find() 尝试查找与该模式匹配的输入序列的下一个子序列
3 public boolean find(int start) 重置此匹配器,然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列
4 public boolean matches() 尝试将整个区域与模式匹配

Matcher类中替换方法

替换方法的功能:
替换方法:用于替换输入字符串里文本的方法

编号 方法及备注说明
1 public Matcher appendReplacement(StringBuffer sb, String replacement) 实现非终端添加和替换步骤
2 public StringBuffer appendTail(StringBuffer sb) 实现终端添加和替换步骤
3 public String replaceAll(String replacement) 替换模式与给定替换字符串相匹配的输入序列的每个子序列
4 public String replaceFirst(String replacement) 替换模式与给定替换字符串匹配的输入序列的第一个子序列
5 public static String quoteReplacement(String s) 返回指定字符串的字面替换字符串。这个方法返回一个字符串,就像传递给Matcher类的appendReplacement 方法一个字面字符串一样工作

Matcher类示例分享

import java.util.regex.Matcher;
import java.util.regex.Pattern;public class testMain {/** java265.com Matcher对象示例演示 统计出 字符串中 单独出现 java 字符串的个数*/private static final String REGEX = "\\bjava\\b";private static final String INPUT = "java 教程最好的网站 java  java265.com";public static void main(String[] args) {Pattern p = Pattern.compile(REGEX);Matcher m = p.matcher(INPUT); // 获取 matcher 对象int count = 0;while (m.find()) {count++;System.out.println("计数器:" + count);System.out.println("开始位置:" + m.start());System.out.println("结束位置:" + m.end());}}
}---以上代码,将输出-----
匹配成功数:1
开始位置:0
结束位置:4
匹配成功数:2
开始位置:13
结束位置:17

matches及lookingAt方法功能说明

matches及lookingAt方法都于来尝试匹配一个输入序列模式

 matches及lookingAt方法的不同之处:matches需整个序列都匹配lookingAt方法无需整句都匹配,但需从第一个字符开始匹配

例:

package com.java265;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class testMain {/** java265.com 正则表达式数据匹配*/private static final String REGEX = "java";private static final String INPUT = "java265.com is Java WebSite.";private static final String INPUT2 = "000java000";private static Pattern pattern;private static Matcher matcher;private static Matcher matcher2;public static void main(String[] args) {pattern = Pattern.compile(REGEX);matcher = pattern.matcher(INPUT);matcher2 = pattern.matcher(INPUT2);System.out.println("Current REGEX is: " + REGEX);System.out.println("Current INPUT is: " + INPUT);System.out.println("Current INPUT2 is: " + INPUT2);System.out.println("lookingAt(): " + matcher.lookingAt());System.out.println("matches(): " + matcher.matches());System.out.println("lookingAt(): " + matcher2.lookingAt());}
}-------运行以上代码,将输出以下信息-------
Current REGEX is: java
Current INPUT is: java265.com is Java WebSite.
Current INPUT2 is: 000java000
lookingAt(): true
matches(): false
lookingAt(): false

replaceFirst及replaceAll方法功能说明

replaceFirst及replaceAll方法功能用于替换匹配正则表达式的文本

 replaceFirst及replaceAll方法的不同之处:replaceFirst 替换首次匹配,replaceAll 替换所有匹配

replaceAll方法 示例分享

package com.java265;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class testMain {/** java265.com 正则表达式数据匹配*/private static String REGEX = "java";private static String INPUT = "java265.com is java webSite.";private static String REPLACE = "info";public static void main(String[] args) {Pattern p = Pattern.compile(REGEX);// get a matcher objectMatcher m = p.matcher(INPUT);INPUT = m.replaceAll(REPLACE);System.out.println(INPUT);}
}
------以上代码,将输出以下信息-----
info265.com is info webSite.

appendReplacement及appendTail方法功能说明

appendReplacement及appendTail方法的功能:也是用于文本替换操作

例:

package com.java265;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class testMain {/** java265.com 正则表达式数据匹配*/private static String REGEX = "java";private static String INPUT = "java265.com is java webSite.";private static String REPLACE = "-";public static void main(String[] args) {Pattern p = Pattern.compile(REGEX);// 获取matcher对象Matcher m = p.matcher(INPUT);StringBuffer sb = new StringBuffer();while (m.find()) {m.appendReplacement(sb, REPLACE);}m.appendTail(sb);System.out.println(sb.toString());}
}-----以上代码,将输出以下信息----
-265.com is - webSite.

Matcher类中方法简介说明相关推荐

  1. java matcher.group_详解正则表达式Matcher类中group方法

    前言 同事把一个excel表给我,里面的数据大概有几千的样子吧.自己需要把里面的数据一个一个拿出来做一个http请求,对得到的结果进行过滤,然后再写到上面去.这是就涉及到用脚本来进行操作了,于是自己搞 ...

  2. Matcher 类中的group(),group(int i),groupCount()

    2019独角兽企业重金招聘Python工程师标准>>> Matcher 类中的group(),group(int i),groupCount() 2013-11-17 23:57 4 ...

  3. (36)System Verilog类中方法示例

    (36)System Verilog类中方法示例 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog类中方法示例 5)结语 1.2 FPG ...

  4. java matcher方法_9 Matcher 类的方法 - Java 正则表达式教程

    在这一节中来看看 Matcher 类中其他一些有用的方法.方便起见,下面列出的方法是按照功能来分组的. 索引方法 索引方法(index methods)提供了一些正好在输入字符串中发现匹配的索引值: ...

  5. java处理字符串Patter与Matcher类与其方法详解

    1.使用Patter与Matcher类 Pattern 类表示编译的正则表达式. 使用 Pattern 类的静态方法 compile() 获取 Pattern 类引用. 以下代码段用于创建 Patte ...

  6. 传智播客python笔记_python传智播客笔记--第十天:隐藏属性,私有属性,私有方法,__del__方法,类的继承,类中方法的重写...

    封装,继承,多态 隐藏属性,私有属性,私有方法,__del__方法,类的继承,类中方法的重写 -**************************************************** ...

  7. python @classmethod 和 @staticmethod区别,以及类中方法参数cls和self的区别

    一.@classmethod 和 @staticmethod 1.staticmethod 作用:让类中的方法变成一个普通函数(普通函数没有绑定在任何一个特定的类或者实例上.所以与不需要对象实例化就可 ...

  8. 继承(四):new方法都与基类中方法无关

    using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace Inher ...

  9. Struts2中XXX.Action类中方法的访问(三种方式)

    第一种:使用action标签的method属性(常规方法) Action类: package cn.tedu.web;import org.springframework.context.annota ...

最新文章

  1. C#.NET操作数据库通用类
  2. react学习(四)之设置 css样式 篇
  3. Shiro笔记(三)授权
  4. Java 设计模式之迭代器模式
  5. python 的类装饰器
  6. cas无法使用_【漫画】CAS原理分析!无锁原子类也能解决并发问题!
  7. textarea 内容前端展示换行php处理
  8. 深入理解PHP之数组(遍历顺序)
  9. Node的textContent属性
  10. 测试评审要点说明(测试计划、用例、报告)
  11. 字节流和字符流的读写
  12. 2021SC@SDUSC 量子加密库libqs
  13. 三维空间里点到直线的距离
  14. Windows键盘上的截屏按键PrtSc
  15. orange软件使用
  16. C++ 招聘干部录取系统
  17. MATLAB图像处理学习日记之图像的自定义裁剪imcrop操作
  18. laravel实现汉子转拼音
  19. ckplayer 一个不错的网页视频播放器
  20. mac蓝牙连接有问题要怎么处理呢?

热门文章

  1. 男女主重生学计算机专业,男女主双重生现言文,女主好好学习心不乱,男主想恋爱阴魂不散...
  2. c语言教材答案晁晓菲,科学网—金牌教师的“修炼密码”
  3. 基于QT的海康威视的相机二次开发
  4. android proguard 不起作用,Android-ProGuard 混淆
  5. post请求跳转页面
  6. 如何将excel表格导入word_分享一种批量将Excel表格中联系方式导入至手机通讯录中的方法...
  7. [转载]urllib.parse.urlencode转换get请求参数(resquest中带中文的情况)
  8. Javascript面向对象:Object.defineProperty()与Object.defineProperties()
  9. 简单的出库入库软件可以帮助提高企业的管理效率
  10. js技能提升——关闭当前页面