• 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


  • 相关阅读:
    SQLAlchemy
    Redis
    Django框架详解
    nginx负载均衡(反向代理)
    Python 字典 fromkeys()方法
    docker容器的使用
    keepalived原理
    学习区块链必读的6本书
    MATLAB基础入门笔记
    思念是一种美丽的孤独
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5103862.html
Copyright © 2020-2023  润新知