gpt4 book ai didi

java - 一个字符串上有数百个正则表达式

转载 作者:行者123 更新时间:2023-12-02 00:38:35 27 4
gpt4 key购买 nike

我正在使用 Java/Groovy 通过 RegEx 在字符串上查找匹配项(并提取它们)。就性能而言,在 5000 个字符的字符串上查找 200 个或更多正则表达式的匹配项的最佳方法是什么?简而言之,是否可以避免扫描每个正则表达式的字符串?

我可以使用java提供的Pattern和Matcher类,但是我必须编译200个模式,然后将字符串传递给匹配器200次。这是唯一的方法吗?

最佳答案

如果您的正则表达式没有共同的匹配项,您始终可以使用替代方案将它们组合成一个巨大的匹配项,例如

( regex1 ) | ( regex2 ) | .... | ( regexN )

但是考虑到您问题的复杂性,我认为您应该考虑从正则表达式切换到适当的扫描器/解析器组合。前期需要时间,但最终的解决方案将更易于管理。你为什么不看看Antlr

关于java - 一个字符串上有数百个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7022379/

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