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