正则表达式 java.lang.StackOverflowError 使用正则表达式匹配一个大字符串时,会报java.lang.StackOverflowError。在网上搜了下 没找到比较好的解决方案,谁有比较好的解决办法说下! 要使用正则表达式的方式,其他的方式不太好(因为我的匹配模式比较复杂,所以觉得用正则比较方便)。下面大家都说说解决思路和办法吧! 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好代码PASTE 出来没用的分组可以不捕获 跟分组没有多大关系吧 现在就是匹配的字符串长度太长了。比如说给定的字符串要满足以下条件(meta)*, (typedef)*, (import)*, (class|subclass|joined-subclass|union-subclass)*,(resultset)*,(query|sql-query)*,(filter-def)*,(database-object)+;但是字符串太长 就会报错,有什么比较好的方法! 匹配表达式加参数试试Pattern.compile(你的表达式,Pattern.DOTALL + Pattern.MULTILINE) PS:DOTALL模式不一定需要,看你需求 这个我试过了 不行的! 有没有其他的外部jar能跳过堆栈操作的,我用了apache的regex jar也不行 如果你只想知道是匹配的结果,那分组都用非捕获的 (?:meta)* ...因为分组结果肯定是会占用空间的,至于效果咋样,你试试吧 楼主你不能详细说明,示意一下也好啊。你的字符串,以及你写的正则的思路。给定的字符串满足以下这个,单纯是这个的话。不要用正则了。(meta)*, (typedef)*, (import)*, (class|subclass|joined-subclass|union-subclass)*,(resultset)*, (query|sql-query)*,(filter-def)*,(database-object)+干嘛非要(meta)*这样,你直接if (str.contains("meta"))不就行了。 现在要判断字符串是否符合某个规则,就想DTD的约束那样 ,用字符的方法好像收不到那种效果的吧! 既然这样,你可以试试这么做。所有的捕获组()都换成这样(?:meta)*,(?:typedef)*,……(?:class|subclass|joined-subclass|union-subclass)*……,意思并没有改变,只不过现在不放在内存里了。 请教一个关于不同随机数的问题 用JAVA自带的jTree1组件,在组件上添加右键弹出菜单,删除选中节点。 有两道题,百思不得其解 通过什么软件,能将文本转换为二进制各市进行察看,比如UtralEdit 等工具!___特急 怎么样才能够提高自己的水平与能力? JAVA的界面问题 多达300本的经典书籍,都可以下(绝对经典) 开始学JAVA,交个朋友先,记住我的名字,有问题帮着答一下,肯定都是初级的. 急问急问! 一个多点发送的应用程序,可是本能接收??? 在线等啦~!如何更新JPanel中的组件? 求个多附件上传的JS
没用的分组可以不捕获
比如说给定的字符串要满足以下条件
(meta)*, (typedef)*, (import)*, (class|subclass|joined-subclass|union-subclass)*,(resultset)*,(query|sql-query)*,(filter-def)*,(database-object)+;但是字符串太长 就会报错,有什么比较好的方法!
这个我试过了 不行的! 有没有其他的外部jar能跳过堆栈操作的,我用了apache的regex jar也不行
因为分组结果肯定是会占用空间的,至于效果咋样,你试试吧
给定的字符串满足以下这个,单纯是这个的话。不要用正则了。
(meta)*, (typedef)*, (import)*, (class|subclass|joined-subclass|union-subclass)*,(resultset)*, (query|sql-query)*,(filter-def)*,(database-object)+
干嘛非要(meta)*这样,你直接if (str.contains("meta"))不就行了。
现在要判断字符串是否符合某个规则,就想DTD的约束那样 ,用字符的方法好像收不到那种效果的吧!
所有的捕获组()都换成这样
(?:meta)*,(?:typedef)*,……(?:class|subclass|joined-subclass|union-subclass)*……,意思并没有改变,只不过现在不放在内存里了。