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 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.
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


