类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);
            }
        }
    }

(小编也在努力学习更多哟!以后再慢慢分享的啦!)

希望对友友们有所帮助!!!!