谢谢
解决方案 »
- yield() 求助
- java动态编译时 报java.lang.ClassNotFoundException
- JTable刷新问题
- \r,\n,\r\n的问题
- java socket 长连接
- [log4j]按天滚动log文件,如何使当天的log文件达到一定size后再滚动文件?(即DailyRollingFileAppender和RollingFileAppender混合的效果)
- 字符串得随机数字
- 项目开发:多媒体网络教学
- 绝对初级:exeption in thread "main" java.lang.noclassdeffounderror:myfirst
- 本人新接一java工程,但java从没有用过java,也来问问一些简单的问题(保证送分,如若不送就让我的CPU烧掉)
- 我装的是myEclipse5.5GA版本,是JSF项目但是打开faces-config.xml项目时,呈现不了页面链接图和导航字符串
- 请教怎样将消息发送到一个并未通过java程序与我建立连接的机器上
第二个是正向预搜索,(?<X)是反向预搜索http://blog.csdn.net/believefym/archive/2007/05/31/1633369.aspx
这个是非捕获组,其实这个对结果不影响的,只是说你这个括号不是分组,只是为了吧一段规则包含起来。因为保存分组需要时间和内存,给你个例子。这个。呵呵。也算是抄的吧。别的网上看的(?:(\w)\1)+
这里有几个分组?答案是1个。就是(\w),然后\1就是对(\w)这个分组的引用。而外面的(?:)就不是分组了。但是我需要多个(\w)\1的时候,我需要引用(\w),但对外面的,不需要取这个分组。就可以取消这个分组,这个是关系到效率的问题。在海量数据检索的时候。使用非捕获组可以提高一点效率。这个我检查过,大约用非捕获组可以提高10%~20%的效率。(?>X)
这个是原子组。我就不解释了。直接帖给你:
原子组的目的是使正则引擎失败的更快一点。因此可以有效的阻止海量回溯。原子组的语法是<<(?>正则表达式)>>。位于(?>)之间的所有正则表达式都会被认为是一个单一的正则符号。一旦匹配失败,引擎将会回溯到原子组前面的正则表达式部分。前面的例子用原子组可以表达成<<^(?>(.*?,){11})P>>。一旦第十二个字段匹配失败,引擎回溯到原子组前面的<<^>>。