Feb 17, 2009

正则表达式(Regular Expression)测试程序【续】

/**正则表达式的分组
    * group
    */
/*
    Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");//分组,使用(),此处把数字和字母分组。一共有3组,正则表达式本身就是一组
    String s = "123aa-34345bb-234cc-00";
    Matcher m = p.matcher(s);
    while(m.find()) {
       p(m.group(1));//group,内容为正则表达式所匹配的字符串,组号即第n个左小括号,输入第几组就打印选中的那个组的内容
   //m.group()则直接打印所有组内容
    }
*/

/** Reluctant quantifiers限定词 勉强限定词
    * ?? 一个或没有
    *? 零个或更多
    * +? 一个或更多
    * {n}? 正好n个
    * {n,}? 至少n个
    * {n,m}? 至少n最多m
*/
/**Possesive quantifiers独占性限定词
    * ?+ 意义同上
    *+ Greedy,Reluctant,Possessive这三种quantifiers区别:它们都是匹配到了就停止
    * ++ Greedy,看到{n,m}就直接吞入m个字符,再与正则表达式匹配,匹配不上则往外吐一个再匹配
    * {n}+ Reluctant,看到{n,m}就吞入n个字符,再匹配,匹配不上则再吞一个字符
    * {n,}+ Possesive,独占的,与Greedy类似,一次吞m个,只是不往外吐
    * {n,m}+
*/
/*
    Pattern p = Pattern.compile(".{3,10}+[0-9]");
    String s = "aaaa5bbbb68";
    Matcher m = p.matcher(s);
    if(m.find())
       p(m.start() + "-" + m.end());
    else
       p("not match!");
*/

No comments:

Powered By Blogger