Matcher类中方法简介说明

转自:

Matcher类中方法简介说明

Matcher类中索引方法

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

索引方法如下所示:

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

Matcher类中查找方法

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

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

Matcher类中替换方法

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

编号方法及备注说明
1public Matcher appendReplacement(StringBuffer sb, String replacement) 实现非终端添加和替换步骤
2public StringBuffer appendTail(StringBuffer sb) 实现终端添加和替换步骤
3public String replaceAll(String replacement) 替换模式与给定替换字符串相匹配的输入序列的每个子序列
4public String replaceFirst(String replacement) 替换模式与给定替换字符串匹配的输入序列的第一个子序列
5public 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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值