gpt4 book ai didi

Java RegEx 模式花费太多时间

转载 作者:行者123 更新时间:2023-12-02 08:08:49 24 4
gpt4 key购买 nike

我有一个脚本(Java String),其中包含很多 SQL 和 SQL 运算符,例如 <>(不等于)、++(增量运算符)、:=(赋值运算符),但默认情况下所有这些都包含单个或者它们之间有多个空格,例如<>将是<>,类似地++可以像++一样,它们之间有多个空格。

我编写了一个简单的正则表达式来删除下面提到的空格。对于小型脚本,没有问题,但对于较大的脚本,需要很长时间,有时需要 20-30 秒。

你能发现这个程序有什么问题并建议我更好的吗?

p = Pattern.compile("(: +=|! +=|- +-|< +>|> +=|< +=|\\+ +=|\\'|\\/ +\\*|\\* +\\/|\\| +\\||\\< +\\<|\\> +\\>)");
m = p.matcher(script);

while (m.find()) {
script = script.replace(m.group(), m.group().replaceAll(" +", ""));
}

请建议我如何减少时间。

谢谢

最佳答案

我担心带有联合的长正则表达式对匹配器来说有点困难。为什么不采用像这样更简单的解决方案:

str = str.replace(":( +)=", ":=");
str = str.replace("!( +)=", "!=");
str = str.replace("-( +)-", "--");
//... etc

它会更清晰并且应该更快。

关于Java RegEx 模式花费太多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com