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
groovy : 正則表達式的更多相关文章
- js正則表達式语法
1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的 ...
- Java正則表達式入门
众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一 ...
- jquery+正則表達式验证邮箱格式的样例
js: $("#email").blur(function(){ //获取id相应的元素的值,去掉其左右的空格 var email = $.trim($('#email').val ...
- python使用正則表達式
python中使用正則表達式 1. 匹配字符 正則表達式中的元字符有 . ^ $ * + ? { } [ ] \ | ( ) 匹配字符用的模式有 \d 匹配随意数字 \D 匹配随意非 ...
- Java正則表達式语法
Java正則表達式语法 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.比如,"n"匹配字符"n"."\n"匹配换行 ...
- javascript正則表達式 "\b"问题
preface 昨晚在看<javascript权威指南>后.看见作者自己封装一个兼容全部浏览器的山寨HTML5新API classLIst类.自己想了想认为自己也要去玩一下.可是能力还是有 ...
- C++11中正則表達式測试
VC++2010已经支持regex了, 能够用来编译下述代码. #include <string> #include <regex> #include <iostream ...
- 深入浅出理解iOS经常使用的正則表達式—基础篇[Foundation]
參考资料:cocoachina的zys475481075的文章 几个单词 Regular ['regjʊlə]adj. 定期的:有规律的 Expression[ɪk'spreʃ(ə)n; ek-] n ...
- Linux正則表達式-反复出现的字符
星号(*)元字符表示它前面的正則表達式能够出现零次或多次.也就是说,假设它改动了单个字符.那么该字符能够在那里也能够不在那里,而且假设它在那里,那可能会不止出现一个.能够使用星号元字符匹配出如今引號中 ...
随机推荐
- Cloud Foundry 中国群英会【上海站、成都站】资料宣传
关注云计算和PaaS层的童鞋可以了解下: http://www.cloudfoundry-heroes-summit.com/shanghai http://www.cloudfoundry-hero ...
- Android 点亮屏幕
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- 基于visual Studio2013解决面试题之1305字符串所有子集
题目
- Java 23种设计模式详尽分析与实例解析之三--行为型模式
Java设计模式 行为型模式 职责链模式 模式动机:职责链可以是一条直线.一个环或者一个树形结构.链上的每一个对象都是请求处理者,职责链模式可以将请求的处理组织成一条链,并使请求链传递,由链上的处理者 ...
- 几种经典的数据排序及其Java实现
选择排序 思想 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空. ②第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k ...
- webstorm入门1-主题和配色
1.引子 以前介绍过 Sublime text 3 系列的文章,着重介绍了 Sublime text 3 如何下载.安装.插件.配置等内容.Sublime text 3的轻量和富扩展,为前端开发带来了 ...
- 基于visual Studio2013解决C语言竞赛题之1066进制转化
题目 解决代码及点评 /************************************************************************/ /* ...
- tar打包过滤某个文件及文件夹
ip=ip add|grep eth0|grep -i inet|awk '{print $2}'|cut -d '/' -f 1 cd /data tar -zvcf `echo $ip`_`dat ...
- RStudio版本号管理 整合Git
本文为原创,转载注明出处. 系统环境: win7 x64 R-3.1.0-win.exe RStudio-0.98.507.exe 前置条件:必须拥有github仓库: 如:https://githu ...
- 【Demo 0006】Java基础-类多态性
本章学习要点: 1. 了解Java多态特性; 2. 掌握Java多态的实现: 一.多态特性 1. 定义: 指同一个对象调用相同的方法实现 ...