类Pattern模式器,用来封装一个正则表达式.封装好之后通过匹配器获取模式器,并传入待匹配数据.使用匹配器中的matches() 可以查看待匹配数据是否符合正则.
public class Test {
public static void main(String[] args) {
//Pattern 模式器,用来封装一个正则表达式
Pattern p = Pattern.compile("a*b"); //此处a*b是指a可以出现0次或多次,b只能出现一次
//通过匹配器获取一个模式器,并传入待匹配数据
Matcher m = p.matcher("aaaaab");
//使用匹配器中的matches() 看待匹配数据,是否符合正则。
boolean b = m.matches();
System.out.println(b);
}
}
如果你仅仅只是看一个数据是否符合正则,那就用字符串中的matches()方法就可以啦!
public class Test {
public static void main(String[] args) {
boolean b1 = "aaaaab".matches("a*b");
System.out.println(b1);
}
}
Pattern和Matcher的内部含有很多方法方便使用.主要是可以综合使用find()方法 和 group()方法查找并提取出来想要找的子字符串. 注意一定要先使用find()方法先找到 ,才能用group()方法获取出来.
- Pattern.compile(正则); 把字符串中符合正则的数据提取出来
- find (); 尝试查找与该模式匹配的输入序列的下一个子序列.
- group (); 返回由以前匹配操作所匹配的输入子序列.
public class PatternMatcherTest {
public static void main(String[] args) {
//提取出下面字符串中3个字母组成的单词
String str = "da jia ting wo shuo, jin tian yao xia yu, bu shang wan zi xi, gao xing bu?";
/*
*补充: \b 单词边界 就是不是单词字符的地方。
* */
//把字符串中符合正则的数据提取出来
String regx = "\\b[a-z]{3}\\b";
Pattern p = Pattern.compile(regx);
Matcher m = p.matcher(str);
//先find()后group()
while (m.find()) { //如果找到,就会进入循环
String group = m.group(); //然后提取出来
System.out.println(group);
}
}
}
(小编也在努力学习更多哟!以后再慢慢分享的啦!)
希望对友友们有所帮助!!!!