我有一个包含行的字典文件
NS * .abc.com
NS * .xyz.com
我想将ns15.abc.com,nsABC.abc.com等模式与字典文件匹配并返回true。
例如。 ns15.abc.com匹配,而ns16.ABC.abc.com不匹配。
提前致谢
public class ValidateDemo {
public static void main(String[] args) {
List<String> input = new ArrayList<String>();
input.add("ns14.abc.com");
for (String str : input) {
if (str.matches("ns*.abc.com")) {
System.out.println("Match: " + str);
}
}
}
}
答案 0 :(得分:0)
在字典的每个条目中,用"[^\.]*"
替换星号并用"\."
替换 - 这是每个条目的模式:
Pattern p = Pattern.compile("^" + dictEntry.replaceAll(".", "\\.").replaceAll("*", "[^\\.]*") + "$");
或者您也可以使用“|”加入所有词典条目有单一模式匹配它们。