论坛首页 Java企业应用论坛

神奇的java正则表达式

浏览 28497 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (6)
作者 正文
   发表时间:2011-02-15   最后修改:2011-02-15
hswx_11 写道
看下http://blog.csdn.net/shixing_11/archive/2010/11/09/5997567.aspx;文章
这种正则非常容易形成死循环,这是JDK1.4以来遗留的一个BUG。到JDK1.6也未解决。以后用正则,一定要谨慎,对于大批量的数据校验最好避免正则,SUN对JDK这个BUG有专门说明,请看如下:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5050507和
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6988218

你给的参考资料很好,受教了。

正在做一个正则表达式,从网页html代码中提出table,
正则:
<table(.|\\n|\\r)*?</table>

在js和一个桌面的正则测试工具下是正常的,能找出给定html字符串的table来,
但在java中当字符串长度超过826时就报栈溢出异常:
Exception in thread "main" java.lang.StackOverflowError
	at java.util.regex.Pattern$CharProperty.match(Pattern.java:3343)
	at java.util.regex.Pattern$Branch.match(Pattern.java:4114)
	......


不知是我的正则有问题还是那个JDK的bug呢
0 请登录后投票
   发表时间:2011-02-15  
对于正则表达式,请记住一句老话:“ 您有一个问题,用正则表达式解决。那您就有两个问题了。” 
0 请登录后投票
   发表时间:2011-04-13  
楼主,解决了没,我也遇到一样的问题了,调试模式下没问题,直接执行就报这个异常。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
0 请登录后投票
   发表时间:2011-04-14  
这个看着头大
0 请登录后投票
   发表时间:2011-04-14  
诶 一个正则 嵌套这么多层
看上去不累么?
维护不累么?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics