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

groovy : 正則表達式的更多相关文章

  1. js正則表達式语法

    1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的 ...

  2. Java正則表達式入门

     众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一 ...

  3. jquery+正則表達式验证邮箱格式的样例

    js: $("#email").blur(function(){ //获取id相应的元素的值,去掉其左右的空格 var email = $.trim($('#email').val ...

  4. python使用正則表達式

    python中使用正則表達式 1. 匹配字符 正則表達式中的元字符有 .  ^  $ *   +  ?  { }  [ ]  \  | ( ) 匹配字符用的模式有 \d 匹配随意数字 \D 匹配随意非 ...

  5. Java正則表達式语法

    Java正則表達式语法 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.比如,"n"匹配字符"n"."\n"匹配换行 ...

  6. javascript正則表達式 &quot;\b&quot;问题

    preface 昨晚在看<javascript权威指南>后.看见作者自己封装一个兼容全部浏览器的山寨HTML5新API classLIst类.自己想了想认为自己也要去玩一下.可是能力还是有 ...

  7. C++11中正則表達式測试

    VC++2010已经支持regex了, 能够用来编译下述代码. #include <string> #include <regex> #include <iostream ...

  8. 深入浅出理解iOS经常使用的正則表達式—基础篇[Foundation]

    參考资料:cocoachina的zys475481075的文章 几个单词 Regular ['regjʊlə]adj. 定期的:有规律的 Expression[ɪk'spreʃ(ə)n; ek-] n ...

  9. Linux正則表達式-反复出现的字符

    星号(*)元字符表示它前面的正則表達式能够出现零次或多次.也就是说,假设它改动了单个字符.那么该字符能够在那里也能够不在那里,而且假设它在那里,那可能会不止出现一个.能够使用星号元字符匹配出如今引號中 ...

随机推荐

  1. 手把手教你安装QT集成开发环境(操作系统为ubuntu10.04)

    在安装QT集成开发工具包之前需要先安装build-essential和libncurses5-dev这两个开发工具和库,libncurses5-dev库是一个在Linux/Unix下广泛应用的图形函数 ...

  2. Can't call commit when autocommit=true(转)

    java.sql.SQLException: Can't call commit when autocommit=true at com.mysql.jdbc.SQLError.createSQLEx ...

  3. C++智能指针的实现

    说起智能指针,不少人都不陌生.比方auto_ptr.shared_ptr.unique_ptr.weak_ptr. 依据shared_ptr的功能,自己仿造也实现了个. 对于shared_ptr这样的 ...

  4. Qt入门-字符串类QString

    原地址:http://blog.csdn.net/xgbing/article/details/7770854 QString是Unicode字符的集合,它是Qt API中使用的字符串类. QStri ...

  5. GreenDAO数据库版本升级

    GreenDAO是一款非要流行的android平台上的数据库框架,性能优秀,代码简洁. 初始化数据库模型代码的时候需要使用java项目生成代码,依赖的jar包已经上传到我的资源里了,下载地址如下:ht ...

  6. 基于visual Studio2013解决C语言竞赛题之1084完全平方数

        题目 解决代码及点评 /************************************************************************/ /* ...

  7. javascript 学习资料网址一览

    1.http://www.runoob.com/ 2.https://developer.mozilla.org/zh-CN/ 3.http://www.imooc.com/   视频类

  8. JSP的学习(7)——九大隐式对象之pageContext对象

    本篇来讲诉JSP中九大隐式对象中最后一个,也是最重要的一个对象——pageContext对象. pageContext对象代表了该JSP页面的运行环境,它的作用有: ① 这个对象封装了对其它八大隐式对 ...

  9. Convert QWERTY to Dvorak

      Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Pract ...

  10. DLP底座(威创定制)

    品牌:威创 型号:BC06730-1000 生产商:广东威创视讯科技股份有限公司 1.DLP底座说明 DLP底座由威创统一定制,确保了整套系统的完整性和可靠性.材质为钢结构,根据淄川地下管线中心的现场 ...