<b>浅谈Java中正则表达式的优化办法</b>[Java编程]
本文“<b>浅谈Java中正则表达式的优化办法</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
获得每次利用惹起小丧失的分组.假如你实际并不需求获得一个分组内的文本,那么就利用非捕捉分组.比方利用"(?:X)"替换"(X)".
让引擎完成优化(Let the engine do the work for you)
如上面我所提到的,java.util.regex包可以编JAVA译正则表达式时对其优化.比方,正则表达式中包含了一个必须在输入字符串中呈现的字符串(大概整个表达式都不匹配),引擎有时会首先搜索该字符串,假如没有找到匹配就会报告失利,不再查抄整个正则表达式.
别的非常有效地自动优化正则表达式的方法让引擎按照正则表达式中的盼望长度查抄输入字符串的长度.比方,表达式"\d{100}"是内涵优化的,乃至于假如输入字符串不是JAVA100个字符,引擎就会报告失利,而不再观察整个正则表达式.
无论什么时刻编写复杂的正则表达式时,尝试找出一种编写方法使引擎可以辨认和优化这些特别情形.比方,不要在分组或挑选中躲藏号令字符串,因为引擎不会辨认它们.若有大概,指定你想要匹JAVA配的输入字符串的长度也是相当有效的,如上例所示.
优化贪心情势和委曲情势(Optimizing greedy and reluctant quantifiers)
你已经有了若何优化正则表达式的基本概念,此中一些方法可以JAVA让引擎来完成优化.目前我们谈论优化贪心情势和委曲情势.贪心情势量词如"*"或"+",会首先从输入字符串中尝试匹配尽大概多的字符,即便这意味着字符串中的剩下的内容已经不足以匹配正则表达式的别的部份.假如是这样,贪心情势量词就会回缩,返回字符,知道可以完好匹配大概没有字符了.委曲(大概lazy)情势,另一方面,会首先尝试匹配输入字符串中尽大概少的字符.
以上是“<b>浅谈Java中正则表达式的优化办法</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |