【发布时间】:2014-05-22 13:11:44
【问题描述】:
我有一个包含大量 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)
我如何通过大量检查使其更易于维护和更高效?
【问题讨论】:
-
如果您的代码有效,最好转到codereview.stackexchange.com
-
是 string1, string2 ... 文字字符串吗?
-
所以当你说“String1”、“String2”等时,这些只是真实字符串的占位符,对吧?实际的字符串只是普通的旧字符串还是包含任何真正的正则表达式(例如,
\d等)? -
你匹配,好的,但是你用这些匹配做什么?
-
String1 等只是简单的旧词。我想检查一个句子是否满足某些模式,例如伪代码中的示例。
标签: java regex performance maintainability