我有10个正则表达式和1个字符串,它们可能与这10个正则表达式中的一个完全匹配。有没有人知道一个简单的方法来找出哪个正则表达式(如果有的话)匹配我的字符串?我知道我可以简单地测试每一个字符串,但我想知道是否有一个库,我可以输入正则表达式和字符串,它会告诉我我的正则表达式是否匹配。我需要知道哪个正则表达式匹配,因为每个正则表达式的结果业务逻辑都不同。
答案 0 :(得分:4)
这是您正在寻找的API。只需为10个表达式中的每个表达式调用它!
public boolean testMatch(String data, String regEx) {
return data.matches(regEx);
}
让它更通用。
public String testMatch(String data, String... regExs) {
for(String regEx : regExs) {
if(data.matches(regEx)) {
return regEx;
}
}
return null;
}
答案 1 :(得分:0)
试试这个:
String charsequence = "Whatever";
List<Pattern> patterns = null/* Place here all your RegExp*/;
Matcher matcher = null;
for (Pattern p: patterns) {
matcher = p.matcher(charsequence);
if (matcher.matches()) {
// It matches, do stuff
break;
}
}
希望它有所帮助。
此致
答案 2 :(得分:0)
根据哪个表达式匹配,看到您将拥有不同的逻辑。我认为你不能避免循环遍历每个选项(或者在每个选项中都有另一个类循环)。
您可以创建具有正则表达式和要执行的操作的类,并将String传递给该类,并让它在匹配时执行操作,而不是确定匹配并使某些开关类似结构确定要执行的操作。