有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java检查url是否等于或是的子目录?

我正在寻找一种在java中执行以下操作的最佳实践方法(可能使用ApacheCommons、一些spring实用程序,或者可能只是普通的java/regex):

我需要检查给定的URL模式是否等于给定的字符串或是该字符串的子目录:

String pattern = "/myPath";

if(StringUtils.startsWithIgnoreCase(url, pattern) { // }

上述方法(使用commons方法)适用于如下URL:"../../myPath""../../myPath/""../../myPath/1/2"

问题是它也匹配:"../../myPathABC"。这不是期望的行为,因为它不是同一目录或子目录


共 (2) 个答案

  1. # 1 楼答案

    如果你想使用正则表达式,我会使用一个正则表达式来匹配以下正则表达式:

    /^(\.\.\/)*myPath(\/|\/.*|$)/
    

    对于以下情况,它返回true:

    myPath
    ../../myPath
    ../../myPath/
    ../myPath
    myPath/
    

    对于以下任何变量,将返回false:

    myPathABC
    

    或者任何不是myPath的东西。也许有一种方法可以用java命令来实现,java有一个用于所有东西的库,不幸的是我不知道它

    哦,它对/myPath/不起作用,但我不确定您是否想要(您没有声明),如果您想要匹配,请在myPath之前添加一个\/?

  2. # 2 楼答案

    试试^{}