|
步骤 2 : 举例说明 步骤 3 : Pattern类 步骤 4 : Matcher 类 步骤 5 : Matcher 类的方法
假如你是警察,这一次抓了很多嫌疑犯,同时手上还有一张通缉令,那么你要做的就是对每个嫌疑犯,挨个挨着去匹配通缉令上的特征,是否有耳洞,是否有纹身,是否光头等等。
嫌疑犯 就是被匹配的字符串 通缉令 就是匹配模式
假如你手上有一个名单
朱元璋、康熙、韦小宝、苍老师、刘胡兰、韦大宝、孙中山、陈道明 而你的通缉令上的特征描述是,这个人的名字以 韦 开头,宝结束,一共三个字 那么你的匹配模式就是 韦.宝 通过正则表达式,就可以把满足条件的人名找出来 import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Regex {
public static void main(String[] args) {
String p = "韦.宝";
String targetString = "朱元璋、康熙、韦小宝、苍老师、刘胡兰、韦大宝、孙中山、陈道明";
Pattern pattern = Pattern.compile(p);
Matcher matcher = pattern.matcher(targetString);
System.out.println("目标字符串:\t" + targetString);
System.out.println("匹配模式:\t" + p);
boolean found = false;
while (matcher.find()) {
System.out.format(
"找到匹配的字符串:" + " \"%s\" 开始位置是 " + "index %d 结束位置是 index %d.%n",
matcher.group(),
matcher.start(),
matcher.end());
found = true;
}
if (!found)
System.out.println("没有找到匹配的字符串");
}
}
Pattern 就代表匹配模式,这个类没有public构造方法可以调用,只能通过
String p = "韦.宝"; Pattern pattern = Pattern.compile(p); 这样的方式创建,而p就是字符串格式的 匹配模式 . 符号表示匹配任意字符
Matcher 表示匹配结果,同样的,这个类也没有public 的构造方法调用,只能通过这样的方式得到:
Pattern pattern = Pattern.compile(p); Matcher matcher = pattern.matcher(targetString); 这也是可以理解的,匹配结果,肯定是建立在匹配模式和被匹配字符串的基础上的。 while (matcher.find()) { System.out.format( "找到匹配的字符串:" + " \"%s\" 开始位置是 " + "index %d 结束位置是 index %d.%n", matcher.group(), matcher.start(), matcher.end()); found = true; } matcher.find(): 表示不停寻找满足条件的匹配结果 matcher.group(): 这一次找到之后,取出满足条件的匹配结果 matcher.start(): 这一次成功匹配的开始位置 matcher.end()): 这一次成功匹配的结束位置+1
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2019-12-06
感谢站长,支持你
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|