我正在将perl程序转换为java。在perl脚本中,根据数百个正则表达式模式检查从文件读取的值。我不想静态地执行此操作,因为它是在原始的perl程序中完成的。是否有任何设计模式可用于使其更具动态性?
这是当前代码的一行:
$flag++ if ($Part_Name =~ /(harmonic|nsg|white\ sands|sphix|battery|collection|allied)/i);
现在再重复50-60行,这就是有多少行。正在测试的唯一字符串实际上是独立的,我们最后关心的是if($ flag> 0)。
答案 0 :(得分:3)
看起来你实际上不需要使用正则表达式。
只需创建一个您正在检查的数组(例如,“harmon”,“white sands”)并在数组上循环执行包含:valueFromFile.contains(arrayItem)
如果匹配,请设置一个标志并退出。不要忘记使用小写valueFromFile
,以便不区分大小写。
如果您确实需要正则表达式,请使用matches
代替contains
。
注意:可能有一种方法可以在没有显式循环的情况下显式地执行此操作,但我还没有编写Java一段时间(如果有的话,可以随意编辑)。