基本String.match不匹配

时间:2013-12-05 18:48:34

标签: java regex

Java的String.match表现得不像我认为的那样,我不确定为什么。以下是我正在做的事情,我正在尝试解析主机的子域,并在子域与“dev”匹配时有条件地执行某些操作。

String serverName = httpServletRequest.getServerName();
    List<String> partsList = new ArrayList<>(Arrays.asList(serverName.split("\\.")));
    if(partsList.size() == 3) {
        String subDomain = partsList.get(0);
        System.out.println(subDomain + " => " + subDomain.matches("dev"));

问题是,这会将以下内容打印到控制台:

dev01 => false

这里发生了什么?它显然匹配。我是否错误地使用了正则表达式字符串?

2 个答案:

答案 0 :(得分:3)

String.matches()整个字符串

匹配

我推荐String.startsWith()

答案 1 :(得分:3)

我可以推荐一个更简单的解决方案吗?

subDomain.contains("dev")