0

我有一个字典文件,其中包含
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);
        }
    }
}
}
4

1 回答 1

0

在字典中的每个条目中,将星号替换为"[^\.]*"并用点替换"\."- 每个条目都有您的模式:

    Pattern p = Pattern.compile("^" + dictEntry.replaceAll(".", "\\.").replaceAll("*", "[^\\.]*") + "$");

或者您也可以使用“|”连接所有字典条目 让单一模式匹配它们。

于 2013-01-15T23:42:07.753 回答