- 浏览: 2470163 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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 3147Externalization没用过, 它通过牺牲默认序列化的 ... -
关于java的检查异常和非检查异常
2012-04-04 21:31 4967这里有一个关于java的检查异常和非检查异常的观点, 我比较赞 ... -
使用ThreadLocal保证DateFormat线程安全
2012-04-03 06:45 3603大家都知道DateFormat是线程非安全的, 一般在多线程环 ... -
使用枚举实现一个状态机
2012-04-02 23:14 3939非常巧妙的一个使用枚举的例子.原文见这里 interface ... -
一个同步队列例子
2012-04-02 21:35 1572这个用的也比较少, 做一个参考, 原文见这里 private ... -
一个读写锁的例子
2012-04-02 21:20 1532用的比较少, 做一个参考. 原文在这里 public clas ... -
如何计算一个合适的线程池大小参数
2012-04-02 20:57 9071原文在这里 下面是一个计算的框架代码: /** * A ... -
正确使用日志的10个技巧
2012-02-11 21:13 28854做一个苦逼的Java攻城师, 我们除了关心系统的架构这种hig ... -
Java编程最差实践
2012-02-04 17:54 26641原文地址:http://www.odi.ch/prog/des ... -
利用jOOR简化Java 反射使用
2012-01-15 20:39 5156原文:http://lukaseder.wordpress.c ... -
《Java Performance》书评
2012-01-15 18:32 2963原文: http://java.dzone.com/rev ... -
《细说Java》读书笔记
2011-10-05 15:01 1994国人写的, 感觉是一 ... -
《Java开发超级工具集》读书笔记
2011-09-28 08:59 2100"工欲善其事必先利其器", 在平时的开发 ... -
《effective java》 读书笔记
2011-07-02 14:52 7603读第一版已经是好几年前的事儿了, 现在想起来也没什么印象, ... -
用java实现"awk -d"功能(保留多行重复)
2010-06-07 21:48 3073一般用过linux脚本的都知道"awk -d&quo ... -
关于方法返回值的两种处理模式
2010-05-13 09:06 2030目前在处理返回值方面, ... -
JVM调优汇总
2010-02-21 19:18 14416参考网址 http://pengjiaheng.spaces. ... -
log4j的输出转换模式
2009-12-12 10:02 1274转换模式(conversion pattern)为" ... -
Ibatis TypeHandler使用总结
2009-11-25 19:33 16550ibatis中有一个TypeHandler(准确的说应该是Ty ... -
ibatis参数传递小技巧
2009-10-30 14:21 3922使用ibatis操作数据库的时候, 如果这个操作需要一些参数, ...
相关推荐
Java正则表达式是编程语言Java中用于处理文本的强大工具,它源于早期的神经网络理论研究,由数学家Stephen Kleene提出并应用在Ken Thompson的计算搜索算法中,尤其是在Unix的qed编辑器中得到实际应用。自那时起,...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包中的类和接口实现的。本实例将深入探讨如何在Java中...
在提供的文件中,如"正则表达式的使用方法.mht"、"正则.txt"等,可能会详细介绍更多的正则表达式用法、特殊字符和预定义字符类,以及如何在实际项目中应用它们。这些资源对于深入理解和掌握正则表达式非常有帮助,...
以上正则表达式不仅适用于C#,也广泛应用于其他编程语言中,例如Java、Python等。通过这些示例,我们可以看到正则表达式的强大功能和灵活性,它可以帮助开发者高效地完成各种字符串匹配任务。希望这些示例能为你提供...
Java正则表达式是Java语言中用于处理文本和匹配模式的重要工具。正则表达式,又称正规表示式或正规表达项,是一种模式匹配语言,它由一系列字符构成,用于定义要在文本中查找的模式。Java虽然在早期版本中没有内置...
Java正则表达式是用于处理文本和匹配模式的强大工具,尤其在编程中,它能帮助开发者高效地查找、替换和解析字符串。虽然Java在标准库中内置了对正则表达式的支持,但在早期版本中可能需要依赖第三方库,如Apache的...
使用正则表达式匹配文本... 38 向更实用的程序前进... 40 成功匹配的副作用... 40 错综复杂的正则表达式... 43 暂停片刻... 49 使用正则表达式修改文本... 50 例子:公函生成程序... 50 举例:修整股票价格....
在Java中,我们可以使用`java.util.regex`包中的类,如`Pattern`和`Matcher`来处理正则表达式。例如,使用`matches()`方法可以判断一个字符串是否匹配某个正则表达式。 3. **正则表达式语法**: - **字面值字符**...
在编写代码工具或进行代码清理时,处理SQL语句的格式化问题是一个常见的需求。...通过上述的知识点,我们可以更加深入地理解和掌握如何使用Java正则表达式来处理SQL语句的格式化问题,从而提升代码质量与维护效率。
最后,本章将专注于Java和.NET平台下正则表达式的使用,包括API调用、编译正则表达式、执行匹配和替换操作等,并可能包含一些平台特有功能的介绍。 通过这个压缩包的学习,你将能够掌握正则表达式的基本概念和常用...
学习过程中,理解引擎的工作原理、熟悉各种元字符和量词的用法,以及如何构建和调试正则表达式,都是至关重要的。 总的来说,正则表达式是一门强大的技术,学习并熟练掌握它将极大地提升你在处理文本数据时的效率和...
Java正则表达式是一种文本模式,它包含普通字符(如a到z之间的字母)和特殊字符(称为"元字符")。...对于需要进行文本分析、数据验证和字符串处理的Java开发者而言,掌握Java正则表达式的使用方法是非常重要的。
这种方法特别适用于使用支持正则表达式匹配的编程语言。 扩展正则表达式的匹配模式,例如使用贪婪模式,可以进一步提高其灵活性。贪婪模式意味着正则表达式引擎会尽可能多地匹配字符。例如,如果使用贪婪模式的`.*`...
例如判断一个手机号码输入是否正确,如果使用Java、C或者其他语言进行字符串进行判断,也许写几十行代码都不一定能解决,而且漏洞百出,而使用正则表达式,一行代码则可轻易解决,下面是举例说明正则表达式的用法: ...
1. `java.lang.String`:提供了`matches()`、`replaceFirst()`和`replaceAll()`等方法,直接支持正则表达式操作。 2. `java.util.regex.Pattern`:用于编译正则表达式,生成一个模式对象。 3. `java.util.regex....
正则表达式是一个十分强大且复杂的工具,在Java编程中掌握其使用方法对于进行文本处理和模式识别具有重要的实际意义。对于初学者来说,了解和掌握基本的正则表达式概念和应用,是学习Java编程中不可或缺的一部分。...