lesson7 正则表达式

来源:互联网 发布:mac系统能玩暗黑吗 编辑:程序博客网 时间:2024/06/04 18:12

由于上星期笔记本落在学校,导致这么多天没记笔记,现在才补上,人也变懒了。。。要坚持啊

 

 

Matcher(匹配器)                 RegDemo

通过调用模式的matcher方法从模式创建匹配器。创建匹配器后,可以使用它执行三种不同的匹配操作:

 

   matches方法尝试将整个输入序列与该模式匹配。

 

    lookingAt 尝试将输入序列从头开始与该模式匹配。

 

   find方法扫描输入序列以查找与该模式匹配的下一个子序列。

常用的通配符

.代表一个元字符

   a.b 匹配“avb” ,“a b” ,但不匹配a00b

^在字符串里代表开始,在[]里代表取反。

   ^j.*va匹配”j123skdva”, a[^0-9]b匹配”arb”,不能匹配”a1b”

$行的结尾

   a.c0$匹配”abc0”

|或者

   a+|b+匹配“aa”, “a”, “bbb”, “b”

[]

   正则表达式r[aou]t匹配ratrotrut,但是不匹配ret

-

   [A-Za-z]可以匹配任何大小写字母

*代表允许字符出现多次

   a.*b匹配”abbb”, “a67b” atpb

+最少出现一次

   a+匹配“aa”, “a”

?重复零次或一次

   a.*b:?0$匹配“aab:0” “aab0”

{} 027-9999999

  [0-9]{3}-[0-9]{7}

   正则表达式A[0-9]{3}能够匹配字符"A"后面跟着正好3个数字字符的串,例如A123A348

   正则表达式[0-9]{4,6}匹配连续的任意4个、5个或者6个数字字符

   正则表达式[0-9]{4,}匹配连续的任意4个或以上数字字符

边界匹配器

^ 行的开头     

$ 行的结尾

\b 单词边界

\B 非单词边界

\A 输入的开头

\G 上一个匹配的结尾

\Z 输入的结尾,仅用于最后的结束符(如果有的话)

\z 输入的结尾

 

预定义字符类

\d 数字:[0-9]

\D 非数字: [^0-9]

\s 空白字符:[ \t\n\x0B\f\r]

\S 非空白字符:[^\s]

\w 单词字符:[a-zA-Z_0-9]

\W 非单词字符:[^\w]

匹配模式,忽略大小写

Pattern.CASE_INSENSITIVE

 

/**

     * 用正则去分割字符串

     */

    publicvoid mySplit()

    {

       String phones1 =

           "Justin的手机号码:0939-100391\n" +

           "momor的手机号码:0939-666888\n";

      

       //根据指定的字符拆分字符串

//     String[] phone = phones1.split("\n");

//     for(int i=0; i<phone.length; i++)

//     {

//         System.out.println("电话是:" + phone[i]);

//     }

//圆括号用来分组,取数据的时候可以根据分组格式来进行数据提取

       String regStr = "(.*):(0939-[\\d]{6})";

       Patternpattern =null;

       Matcher match = null;

       try

       {

           pattern = Pattern.compile(regStr);

           match = pattern.matcher(phones1);

           while(match.find())

           {

              System.out.println("提取内容:" + match.group(1));

           }

       }

提取内容:Justin的手机号码

提取内容:momor 的手机号码

原创粉丝点击