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
这是怎么回事?显然确实匹配。我是否错误地使用了正则表达式字符串?
最佳答案
String.matches()
匹配整个字符串
我推荐String.startsWith()
。
关于java - 基本 String.match 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20408150/