A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kid1943 中级黑马   /  2014-10-10 17:06  /  953 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;

  3. public class RegexDemo2 {
  4.         public static void main(String args[]) {
  5.                 Demo2();

  6.         }

  7.         private static void getDemo() {
  8.                 // TODO Auto-generated method stub
  9.                 String str = "ming tian jiuyao fang jia le,da jia";
  10.                 String reg = "\\b[a-z]{4}\\b";
  11.                 Pattern p = Pattern.compile(reg);
  12.                 Matcher m = p.matcher(str);
  13.                 while (m.find()) {
  14.                         System.out.println(m.group());
  15.                         System.out.println(m.start() + "..." + m.end());
  16.                 }
  17.         }

  18.         private static void Demo2() {

  19.                 String str="008.109.090.030";
  20.                 String reg="0+(\\d+)";//Greedy 数量词
  21.                 Pattern p=Pattern.compile(reg);
  22.                  Matcher m=p.matcher(str);
  23.                   while( m.find() ){
  24.                           System.out.print(m.group()+"--->");
  25.                            int len= m.groupCount();
  26.                            System.out.print(len+"-----");
  27.                            for(int i=0;i<=1;i++){
  28.                                    System.out.print("group"+"("+i+"):"+m.group(i)+"  ");
  29.                            }
  30.                            System.out.println("       ");
  31.                   }
  32.                   System.out.println("++++++++++++++++++++++++++++++++++++++");
  33.                   
  34.                   String str1="008.109.090.030";
  35.                         String reg1="0+(\\d+?)";//Reluctant 数量词
  36.                         Pattern p1=Pattern.compile(reg1);
  37.                          Matcher m1=p1.matcher(str1);
  38.                           while( m1.find() ){
  39.                                   System.out.print(m1.group()+"--->");
  40.                                    int len= m1.groupCount();
  41.                                    System.out.print(len+"-----");
  42.                                    for(int i=0;i<=1;i++){
  43.                                            System.out.print("group"+"("+i+"):"+m1.group(i)+"  ");
  44.                                    }
  45.                                    System.out.println("       ");
  46.                           }
  47.                        
  48.                
  49.                         }
  50.         }

  51. 结果:
  52. 008--->1-----group(0):008  group(1):8         
  53. 09--->1-----group(0):09  group(1):9         
  54. 090--->1-----group(0):090  group(1):90         
  55. 030--->1-----group(0):030  group(1):30         
  56. ++++++++++++++++++++++++++++++++++++++
  57. 008--->1-----group(0):008  group(1):8         
  58. 09--->1-----group(0):09  group(1):9         
  59. 09--->1-----group(0):09  group(1):9         
  60. 03--->1-----group(0):03  group(1):3
复制代码

为什么会有这样不同的结果?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马