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正則表達式-反复出现的字符
星号(*)元字符表示它前面的正則表達式能够出现零次或多次.也就是说,假设它改动了单个字符.那么该字符能够在那里也能够不在那里,而且假设它在那里,那可能会不止出现一个.能够使用星号元字符匹配出如今引號中 ...
随机推荐
- javascript笔记整理(运算符 )
1.运算符和操作数的组合就称为表达式. 2.算术运算符(+ - * / % a++ a-- --a ++a) a.+ 1.用于数值计算:var a=1;var b=2;alert(a+b)===3 2 ...
- oracle 分区表exchange原理
oracle分区的exchange操作非常快,那原理是什么呢?下面我们来做个实验: SQL> create table test (id number(3)); 表已创建. SQL> in ...
- Swift - 使用CoreLocation获取设备方向(真实方向,磁极方向)
CoreLocation这个定位框架除了可以获取设备的位置数据,还可以获取设备的方向(可以用来实现指南针功能等). 1,CLHeading对象通过一组属性提供航向相关数据: magneticHeadi ...
- JAVA 操作 DBF 文件数据库
1.依赖夹包 javadbf-[].4.1.jar jconn3.jar 2.添加属性文件 jdbc.properties jdbc.driverClassName=com.sybase.jdbc3. ...
- RHEL4 i386下安装rdesktop【原创】
http://rpmfind.net/ 1.根据系统下载rdesktop (1)查看Linux版本:# lsb_release -aLSB Version: :core-3.0-ia32:core-3 ...
- cocos2d-x游戏开发(十五)游戏加载动画loading界面
个人原创,欢迎转载:http://blog.csdn.net/dawn_moon/article/details/11478885 这个资源加载的loading界面demo是在玩客网做逆转三国的时候随 ...
- uvc摄像头代码解析7
13.uvc视频初始化 13.1 uvc数据流控制 struct uvc_streaming_control { __u16 bmHint; __u8 bFormatIndex; //视频格式索引 _ ...
- SQL 2008 数据库迁移
1,改动迁移路径 USE master GO ALTER DATABASE 数据库名 --主数据 MODIFY FILE(NAME='数据库名', FILENAME='F:\DataBase\数据库 ...
- SQL逆向工程
话说有个现成的SQL数据库,四十来张表,每张表多的几十的字段,少的十几个字段.老板说为了下一步大家好好利用这个数据库中的数据,让你研究一下该数据库中的所有的表和字段之间的联系.这是一个什么性质的工作, ...
- Ace of Aces
Description There is a mysterious organization called Time-Space Administrative Bureau (TSAB) in the ...