java检查url是否等于或是的子目录?
我正在寻找一种在java中执行以下操作的最佳实践方法(可能使用ApacheCommons、一些spring实用程序,或者可能只是普通的java/regex):
我需要检查给定的URL模式是否等于给定的字符串或是该字符串的子目录:
String pattern = "/myPath";
if(StringUtils.startsWithIgnoreCase(url, pattern) { // }
上述方法(使用commons方法)适用于如下URL:"../../myPath"
、"../../myPath/"
、"../../myPath/1/2"
问题是它也匹配:"../../myPathABC"
。这不是期望的行为,因为它不是同一目录或子目录
# 1 楼答案
如果你想使用正则表达式,我会使用一个正则表达式来匹配以下正则表达式:
对于以下情况,它返回true:
对于以下任何变量,将返回false:
或者任何不是
myPath
的东西。也许有一种方法可以用java命令来实现,java有一个用于所有东西的库,不幸的是我不知道它哦,它对
/myPath/
不起作用,但我不确定您是否想要(您没有声明),如果您想要匹配,请在myPath
之前添加一个\/?
# 2 楼答案
试试^{}