论坛首页 Java企业应用论坛

神奇的java正则表达式

浏览 28495 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (6)
作者 正文
   发表时间:2011-01-07  
从异常信息来看,很明显,线程栈空间不足,一般来说,存在这种情况,是因为方法的嵌套调用层次太深,上层的方法栈一直得不到释放,导致栈空间不足。因为正则匹配的时候,嵌套层次太深,“()”太多太深。

你可考虑拆分这些匹配。
0 请登录后投票
   发表时间:2011-01-07  
只用一眼能看懂的正则的飘过--
0 请登录后投票
   发表时间:2011-01-07  
恩,增加线程栈
0 请登录后投票
   发表时间:2011-01-07  
freish 写道
正则的效率本身就不高,只是为了方便而已


你理解正則表達式匹配原理嗎?不理解就不要開皇槍
0 请登录后投票
   发表时间:2011-01-07  
。。。有没有可能是零宽断言导致的?
零宽+匹配0字然后就循环匹配零宽,导致stackoverflow?
0 请登录后投票
   发表时间:2011-01-07  
初步认为是请求头的cookie值含有特殊的符号造成stackOverflowError
既然知道是特殊字符造成的,就不要在cookie中使用这些特殊字符,或预先进行处理(如CookieDecoder的String decodeValue(String value)方法)。
另外cookie规范中也有很多不能使用的特殊字符。
如果违反这些规则,很容易掉进陷阱。
0 请登录后投票
   发表时间:2011-01-07  
LZ典型 因噎废食.
0 请登录后投票
   发表时间:2011-01-07  
xingqiba 写道
对于正则表达式,请记住一句老话:“ 您有一个问题,用正则表达式解决。那您就有两个问题了。” 

可能对正则的理解层度不同,看法也不同吧,虽然我也不是很懂正则,但是大部分大牛还是非常推崇正则的,虽然他们也承认正则有这样或者那样的问题.
0 请登录后投票
   发表时间:2011-01-07  
楼主的正则很复杂,建议楼主最好把出错的所有匹配文本找出来再做一些测试,或者贴出来让大家看看,同样的表达式匹配不同的文本结果也会不同,所以本地测不出也很正常.
0 请登录后投票
   发表时间:2011-01-07  
NakoRuru1982 写道
freish 写道
正则的效率本身就不高,只是为了方便而已


你理解正則表達式匹配原理嗎?不理解就不要開皇槍

正则表达式确实是很高效的检索方式.比你普通的逻辑代码高效的多.
0 请登录后投票
论坛首页 Java企业应用版

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