Matcher类中方法简介说明

Java-教程王 Java教程 发布时间:2021-08-16 17:20:23 阅读数:2854 1

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 object
		Matcher 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.
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202108/711.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者