Pattern类
正则表达式的编译表示形式。
主要方法:
public static Patterncompile(String regex):将给定的正则表达式编译到模式中。参数:要编译的表达式。静态方法,直接用类名调用。
public Matchermatcher(CharSequence input):创建匹配给定输入与此模式的匹配器。参数:要匹配的字符序列。返回的是Matcher类对象。
Matcher类中的方法:
public boolean find():尝试查找与该模式匹配的输入序列的下一个子序列。当且仅当输入序列的子序列匹配此匹配器的模式时才返回 true。如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
public String group():返回以前匹配操作所匹配的字符串形式的子序列(可能为空)。
代码示例:
package lianxi;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
public class Lianxi6 {
public static void main(String[] args) {
String s = "q[aeiou]q";//匹配模式
String s1 = "qeq";//要匹配的字符串
Pattern p = Pattern.compile(s);//使用规则字符串创建Pattern对象
Matcher m = p.matcher(s1);//使用Pattern对象,调用match方法,得到Matcher对象(匹配器对象),传入被匹配的字符串
System.out.println(m.find());//true 调用Matcher类中的find()方法,返回的是Boolean类型,表示是否有匹配成功的内容。
System.out.println(m.group());//qeq 如果find方法匹配成功,才可以调用group方法,返回字符串序列
//找出字符串中所有三个字母组成的单词
String data = "ma shang yao fang jia le wo men neng xuexi san tian hen kai xin";
String pattern = "\\b[a-zA-Z]{3}\\b";//匹配模式(\b表示单词边界)
Pattern p1 = Pattern.compile(pattern);//创建Pattern对象
Matcher m1 = p1.matcher(data);//匹配
while(m1.find()){//循环查找,匹配到了就输出group内容
System.out.println(m1.group());//yaojia men xue san hen kai xin
}
}
}