gpt4 book ai didi

java - 优化 Java 正则表达式

转载 作者:行者123 更新时间:2023-11-29 05:23:15 28 4
gpt4 key购买 nike

我有一个包含大量 if 语句的文件,如下所示:

if ((Pattern.compile("string1|String2|String3").matcher(text_str).find()) 
&& (Pattern.compile("String4|String5").matcher(text_str).find())
&& (Pattern.compile("String6|String7|String8").matcher(text_str).find())
&& (Pattern.compile("String9|String10").matcher(text_str).find())
&& (Pattern.compile("String11|String12").matcher(text_str).find())
&& (Pattern.compile("String13|String14").matcher(text_str).find())
&& (Pattern.compile("String15|String16").matcher(text_str).find())
&& (Pattern.compile("String17|String18").matcher(text_str).find())
&& (Pattern.compile("String19|String19|String20").matcher(text_str).find())
) {
return true;

我基本上需要检查像(伪代码)这样​​的字符串:

String contains? (I have a) AND (cat OR dog OR fish) AND (and it) AND (eats OR drinks OR smells) AND (funny OR a lot OR nothing)

如何通过大量检查使它更易于维护和更高效?

最佳答案

您可以使用一个使用一系列前瞻的正则表达式来做到这一点:

return text_str.matches("(?s)^(?=.*(string1|String2|String3))(?=.*(String4|String5))(?=.*(String6|String7|String8))(?=.*(String9|String10))(?=.*(String11|String12))(?=.*(String13|String14))(?=.*(String15|String16))(?=.*(String17|String18))(?=.*(String19|String19|String20))");

关于java - 优化 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807830/

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