假设我有一个正则表达式列表,我希望我的输入字符串匹配如下:
List<String> regexList = new ArrayList<>();
regexList.add("(.*)apple"); // regex1 - anything ending with apple
regexList.add("smart(.*)"); // regex2 - anything starting with smart
boolean isMatching(input) {
for (String regex : regexList) {
if (input.matches(regex)) return true;
}
return false;
}
OR
String regexCombined = "((.*)apple)|(smart(.*))";
boolean isMatching(input) {
return input.matches(regexCombined);
}
现在假设有N个正则表达式来处理。 两种方法的时间复杂性是什么?