- 浏览: 2444514 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (574)
- Book (62)
- Architecture (6)
- Java (39)
- Taobao (41)
- Distributed (4)
- Life (72)
- Database (7)
- Spring (16)
- Photography (15)
- Bicycle (41)
- Test (20)
- jBPM (8)
- Business (12)
- Movie (3)
- Ajax (15)
- Code (7)
- Eclipse (96)
- VIM (2)
- Music (6)
- Groovy (10)
- AutoHotKey (3)
- Dorado (10)
- Maven (7)
- Scrum (5)
- English (20)
- Financial (12)
- OSGi (3)
- Other (4)
- Tool (6)
- Browser (1)
- PPT (1)
- Project Management (4)
- Agile (6)
- Nosql (1)
- Search engine (6)
- Shell (2)
- Open Source (4)
- Storm (10)
- Guava (3)
- Baby (1)
- netty (1)
- Algorithm (1)
- Linux (1)
- Python (2)
最新评论
-
roy2011a:
https://github.com/ebottabi/sto ...
storm的序列化问题及与spring的结合方式 -
roy2011a:
能抗能打 写道哥们儿,你好!能共享下那个storm与sprin ...
storm的序列化问题及与spring的结合方式 -
Alick1:
兄弟,你之前是不是在深圳的正阳公司呆过啊?
storm的ack和fail -
liuleixwd:
先点个赞,写的非常好!有个问题请教下,如果我再bolt里不用e ...
storm的ack和fail -
yao-dd:
solr的facet查询
java正则表达式真难用啊, 这里整理一个java正则表达式用法举例, 比较全, lookingAt()方法比较变态, 备忘
http://www.iteye.com/problems/29463 << 这样……这API看起来也不咋 =_=
怎么用? 我实现了一个 gsub 但是觉得效率可能有点问题
http://scalagroup.group.iteye.com/group/topic/16496
public class PatternTest { public static void main(String[] args) { /* * 常用的调用 */ Pattern p1 = Pattern.compile("a*b"); String str1 = "aaaab"; Matcher m1 = p1.matcher(str1); boolean b1 = m1.matches(); System.out.println(b1); String str2 = "b"; Matcher m2 = p1.matcher(str2); boolean b2 = m2.matches(); System.out.println(b2); /* * 另一种调用 * 等效于上面的语句,尽管对于重复的匹配而言它效率不高,因为它不允许重用已编译的模式。 * 但它可供多个并发线程安全使用,而上面的调用则就不是安全的. */ boolean b3 = Pattern.matches("a*b", "aaab"); System.out.println(b3); // Pattern类的pattern方法:从pattern类的实例中返回匹配模式的字符串表示 String pattern1 = p1.pattern(); System.out.println(pattern1); // Pattern类的split方法 String[] arr1 = p1.split("rrrrraaabccccaaaaab"); for (String string : arr1) { System.out.println(string + ">>>>"); } /* * Matcher类 * matches方法: 方法尝试将整个输入序列与该模式匹配 * lookingAt方法: 尝试将输入序列从头开始与该模式匹配,与 matches 方法类似, * 此方法始终从区域的开头开始;与之不同的是,它不需要匹配整个区域。 * find方法: 方法扫描输入序列以查找与该模式匹配的下一个子序列 */ String str3 = "aabbcccaaaaaeeeaaaaaaaaagggga"; Pattern p3 = Pattern.compile("a+"); Matcher m3 = p3.matcher(str3); boolean bo4 = m3.matches(); System.out.println("matches方法: " + bo4); /* * lookingAt方法,从开头第一个字符进行匹配,匹配成功了不再继续匹配, * 从第一个字符开始,匹配失败了,也不继续匹配.不需要匹配整个序列 */ boolean bo5 = m3.lookingAt(); if (bo5) { // group方法(不带参数)返回的就是匹配的子字符串. System.out.println("lookingAt方法: " + m3.group()); } Pattern p4 = Pattern.compile("b+"); Matcher m4 = p4.matcher(str3); boolean bo6 = m4.lookingAt(); if (bo6) { // group方法(不带参数)返回的就是匹配的子字符串. System.out.println("lookingAt方法: " + m3.group()); } // find方法:找到一个匹配的子串,还会继续找下一个子串. while (m3.find()) { System.out.println("find方法: " + m3.group()); } /* * 带参数的group方法与不带参数的group方法区别 * 不带参数的group方法:find方法与lookingAt方法匹配出来的子序列(上面有演示) * 带参数的group方法: 返回在以前匹配操作期间由给定组捕获的输入子序列。 */ String str6 = "aaabbbccc"; Pattern p5 = Pattern.compile("(a+)(b+)(c+)"); Matcher m5 = p5.matcher(str6); boolean boo = m5.matches(); if (boo) { int k = m5.groupCount() + 1;// 加1就是把0下标的整个字符序列加上,它也作为一组放在0下标的位置. if (k > 0) { for (int i = 0; i < k; i++) { System.out.println(m5.group(i)); } } } } }
评论
4 楼
2047699523
2015-04-19
java正则表达式相关demo源代码下载:http://www.zuidaima.com/share/k%E6%AD%A3%E5%88%99-p1-s1.htm
3 楼
RednaxelaFX
2009-12-08
night_stalker 写道
怎么用? 我实现了一个 gsub 但是觉得效率可能有点问题
http://scalagroup.group.iteye.com/group/topic/16496
http://scalagroup.group.iteye.com/group/topic/16496
http://www.iteye.com/problems/29463 << 这样……这API看起来也不咋 =_=
2 楼
night_stalker
2009-12-08
RednaxelaFX 写道
……话说还有一种可以用正则的地方是在一个字符串里有多处满足某模式的子串,我们希望对这些字串做替换,但每个字串替换的内容未必相同(例如可能加上自增量的编号之类)……
怎么用? 我实现了一个 gsub 但是觉得效率可能有点问题
http://scalagroup.group.iteye.com/group/topic/16496
1 楼
RednaxelaFX
2009-12-08
啊……话说还有一种可以用正则的地方是在一个字符串里有多处满足某模式的子串,我们希望对这些字串做替换,但每个字串替换的内容未必相同(例如可能加上自增量的编号之类),Java的正则API也支持该功能,但用起来也是很不爽……
用
Matcher.appendReplacement()和Matcher.appendTail()就行,问题是它接收的参数是StringBuffer,想换用StringBuilder都不行
用
Matcher.appendReplacement()和Matcher.appendTail()就行,问题是它接收的参数是StringBuffer,想换用StringBuilder都不行
发表评论
-
使用Externalization更高效的实现java对象序列化
2012-04-04 22:38 3090Externalization没用过, 它通过牺牲默认序列化的 ... -
关于java的检查异常和非检查异常
2012-04-04 21:31 4909这里有一个关于java的检查异常和非检查异常的观点, 我比较赞 ... -
使用ThreadLocal保证DateFormat线程安全
2012-04-03 06:45 3540大家都知道DateFormat是线程非安全的, 一般在多线程环 ... -
使用枚举实现一个状态机
2012-04-02 23:14 3890非常巧妙的一个使用枚举的例子.原文见这里 interface ... -
一个同步队列例子
2012-04-02 21:35 1531这个用的也比较少, 做一个参考, 原文见这里 private ... -
一个读写锁的例子
2012-04-02 21:20 1504用的比较少, 做一个参考. 原文在这里 public clas ... -
如何计算一个合适的线程池大小参数
2012-04-02 20:57 9024原文在这里 下面是一个计算的框架代码: /** * A ... -
正确使用日志的10个技巧
2012-02-11 21:13 28749做一个苦逼的Java攻城师, 我们除了关心系统的架构这种hig ... -
Java编程最差实践
2012-02-04 17:54 26427原文地址:http://www.odi.ch/prog/des ... -
利用jOOR简化Java 反射使用
2012-01-15 20:39 5087原文:http://lukaseder.wordpress.c ... -
《Java Performance》书评
2012-01-15 18:32 2920原文: http://java.dzone.com/rev ... -
《细说Java》读书笔记
2011-10-05 15:01 1947国人写的, 感觉是一 ... -
《Java开发超级工具集》读书笔记
2011-09-28 08:59 2070"工欲善其事必先利其器", 在平时的开发 ... -
《effective java》 读书笔记
2011-07-02 14:52 7565读第一版已经是好几年前的事儿了, 现在想起来也没什么印象, ... -
用java实现"awk -d"功能(保留多行重复)
2010-06-07 21:48 3020一般用过linux脚本的都知道"awk -d&quo ... -
关于方法返回值的两种处理模式
2010-05-13 09:06 1980目前在处理返回值方面, ... -
JVM调优汇总
2010-02-21 19:18 14375参考网址 http://pengjiaheng.spaces. ... -
log4j的输出转换模式
2009-12-12 10:02 1230转换模式(conversion pattern)为" ... -
Ibatis TypeHandler使用总结
2009-11-25 19:33 16505ibatis中有一个TypeHandler(准确的说应该是Ty ... -
ibatis参数传递小技巧
2009-10-30 14:21 3886使用ibatis操作数据库的时候, 如果这个操作需要一些参数, ...
相关推荐
Java正则表达式的使用实例Java正则表达式的使用实例;关于url、电话等字符串的判断
使用正则表达式匹配文本... 38 向更实用的程序前进... 40 成功匹配的副作用... 40 错综复杂的正则表达式... 43 暂停片刻... 49 使用正则表达式修改文本... 50 例子:公函生成程序... 50 举例:修整股票价格....
例如判断一个手机号码输入是否正确,如果使用Java、C或者其他语言进行字符串进行判断,也许写几十行代码都不一定能解决,而且漏洞百出,而使用正则表达式,一行代码则可轻易解决,下面是举例说明正则表达式的用法: ...
1.2.1 正则表达式中元字符的用法... 4 1.2.2 Java中的正则表达式API 5 1.2.3 java.util.regex的使用... 6 1.3 实战正则表达式... 8 第2章 程序最优化.... 14 2.1 空间与时间... 14 2.1.1 空间与时间的概念和度量... ...
5.4.1 使用正则表达式描述模式 514 5.4.2 缩略写法 516 5.4.3 正则表达式的实际应用 517 5.4.4 非确定有限状态自动机 518 5.4.5 模拟NFA的运行 520 5.4.6 构造与正则表达式对应的 5.5 数据压缩 ...
5.4.1 使用正则表达式描述模式 514 5.4.2 缩略写法 516 5.4.3 正则表达式的实际应用 517 5.4.4 非确定有限状态自动机 518 5.4.5 模拟NFA的运行 520 5.4.6 构造与正则表达式对应的NFA 522 5.5 数据压缩 ...
5.4.1 使用正则表达式描述模式 514 5.4.2 缩略写法 516 5.4.3 正则表达式的实际应用 517 5.4.4 非确定有限状态自动机 518 5.4.5 模拟NFA的运行 520 5.4.6 构造与正则表达式对应的 5.5 数据压缩 529 5.5.1 ...
第2部分则提供了各种高级主题来展示可以使用Python做些什么,包括正则表达式、网络编程、网络客户端编程、多线程编程、图形用户界面编程、 Web编程、数据库编程、扩展Python 和一些其他材料。 本书适合Python初学...
5.4.1 使用正则表达式描述模式 5.4.2 缩略写法 5.4.3 正则表达式的实际应用 5.4.4 非确定有限状态自动机 5.4.5 模拟NFA的运行 5.4.6 构造与正则表达式对应的 5.5 数据压缩 5.5.1 游戏规则 5.5.2 读写二进制...
5.4.1 使用正则表达式描述模式 5.4.2 缩略写法 5.4.3 正则表达式的实际应用 5.4.4 非确定有限状态自动机 5.4.5 模拟NFA的运行 5.4.6 构造与正则表达式对应的NFA 5.5 数据压缩 5.5.1 游戏规则 5.5.2 读写二...
9.5.2 使用正则表达式 341 9.6 程序国际化 345 9.6.1 Java国际化的思路 346 9.6.2 Java支持的语言和国家 346 9.6.3 完成程序国际化 347 9.6.4 使用MessageFormat处理包含占位符的字符串 349 9.6.5 使用类文件...
7.9.1 方法(所有的集合方法) 7.9.2 方法(仅适用于可变集合) 7.9.3 操作符和内建方法比较 7.10 集合类型总结表 7.11 相关模块 7.12 练习 第8章 条件和循环 8.1 if语句 ...
7.9.1 方法(所有的集合方法) 7.9.2 方法(仅适用于可变集合) 7.9.3 操作符和内建方法比较 7.10 集合类型总结表 7.11 相关模块 7.12 练习 第8章 条件和循环 8.1 if语句 ...
•使用Scanner类可以很方面地获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文 件、输入流、字符串中解析出基本类型值和字符串值。Scanner类提供了多个构造器,不同的构造器可接受文件...
\13.5.1 基本的正则表达式 342 \13.5.2 文字捕获 344 \13.6 小结 345 \高 级 篇 \第14章 XML 348 \14.1 DOM 348 \14.1.1 DOM入门 348 \14.1.2 使用DOM 348 \14.1.3 使用DOM写XML文件 352 \14.2 SAX 354 \...
\13.5.1 基本的正则表达式 342 \13.5.2 文字捕获 344 \13.6 小结 345 \高 级 篇 \第14章 XML 348 \14.1 DOM 348 \14.1.1 DOM入门 348 \14.1.2 使用DOM 348 \14.1.3 使用DOM写XML文件 352 \14.2 SAX 354 \14.3 基于流...
9.1 正则表达式定义 129 9.1.1 方括号表达式 130 9.1.2 转义字符 130 9.2 POSIX风格的函数 131 9.2.1 ereg 和eregi 131 9.2.2 ereg_replace 和eregi_replace 132 9.2.3 Split 133 9.3 PERL风格函数 134 9.3.1 模式定...
第21章 Oracle中的正则表达式(教学视频:29分钟) 369 第五篇 Oracle与编程语言综合使用实例 第22章 Oracle在Java开发中的应用(教学视频:38分钟) 376 第23章 Oracle在C#开发中的应用(教学视频:12分钟) ...
454.1.1 指定返回的键 464.1.2 限制 464.2 查询条件 474.2.1 查询条件 474.2.2 OR 查询 474.2.3 $not 484.2.4 条件句的规则 494.3 特定于类型的查询 494.3.1 null 494.3.2 正则表达式 504.3.3 ...