Java正则表达式中间字符串匹配

时间:2013-01-15 23:34:29

标签: java regex

我有一个包含行的字典文件 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);
        }
    }
}
}

1 个答案:

答案 0 :(得分:0)

在字典的每个条目中,用"[^\.]*"替换星号并用"\."替换 - 这是每个条目的模式:

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

或者您也可以使用“|”加入所有词典条目有单一模式匹配它们。