zoukankan      html  css  js  c++  java
  • groovy : 正則表達式

    groovy 正則表達式 企图模仿Perl 的语法,结果是我试用后。发现没法提取匹配的字符串。

    还是直接引用 java.util.regex  负责对字符序列进行正則表達式匹配

    先转载水木清华上的样例 RegexTest.java

    import java.util.regex.*; 
    
    /** 
    *  java.util.regex  负责对字符序列进行正則表達式匹配 
    *  Pattern负责编译 
    *  Matcher负责匹配 
    *	字符串: (010)abcdefg{beijing}opjhhkk
    *	正则模式: /((d+)).*{([a-zA-Z]+)}/  
    */
    public class RegexTest { 
       public static void main(String [] args) { 
         Pattern p = Pattern.compile("\((\d+)\).*\{([a-zA-Z]+)\}"); 
         Matcher m = p.matcher("(010)abcdefg{beijing}opjhhkk "); 
         if (m.find()) { 
             System.out.println(m.group(0)); // (010)abcdefg{beijing}opjhhkk  
             System.out.println(m.group(1)); // 010 
             System.out.println(m.group(2)); // beijing 
         } 
       } 
     }
    
    执行 java RegexTest

    下面原创:
    我想从一行字符串中提取身份证号码 regexTest.groovy

    import java.util.regex.*; 
    
    /** 
    *   字符串: 1234567890123456789 ID:44010119800101246X abcdefg
    *   正则式1: /ID.+(d{17}[0-9Xx])/ 
    *   正则式2: /(d{18}).*ID.+(d{17}[0-9Xx])/
    */
    public class RegexTest { 
       public static void main(String [] args) { 
         Pattern p = Pattern.compile("ID.+(\d{17}[0-9Xx])"); 
         Matcher m = p.matcher(" 1234567890123456789 ID:44010119800101246X abcdefg "); 
         if (m.find()) { 
          int g = m.groupCount();
          println("groups: "+g);
          for(int i=0; i<=g; i++){
             println(i+": "+m.group(i));
          }
         } 
       } 
     }
    

    执行 groovy regexTest


  • 相关阅读:
    CF 13B Letter A
    CF12D Ball
    题解 CF11C
    CF10E Greedy Change
    CF10D LCIS&&Acwing 272
    CF10C Digital Root
    yLOI2019 青原樱
    js有关时间日期的操作
    js 读取 cookie
    nginx有关.htaccess小结
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5103862.html
Copyright © 2011-2022 走看看