gpt4 book ai didi

Java 正则表达式 : How to Match URL Path?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:46:06 24 4
gpt4 key购买 nike

我正在尝试提取 URL 路径的第一部分。例如:从 http://foo.com/bar/1/2/3 我想提取 bar。这是我正在使用的代码:

private static String getFirstPartOfPath(String url)
{
Pattern pattern = Pattern.compile("^https?://[^/]+/([^/]+)/*$");
Matcher matcher = pattern.matcher(url);
if(matcher.find())
{
System.out.println(matcher.group(1));
}
return null;
}

但是,这与上面列出的最普通的 url 不匹配,如

public static void main(String[] args)
{
getFirstPartOfPath("http://foo.com/bar/1/2/3");
}

什么都不打印。乍一看,模式字符串似乎很清晰,而且显然应该有效。出了什么问题?

最佳答案

不匹配,因为您的正则表达式不正确。您最后的 /*/.* 不同。

使用这个正则表达式:

Pattern pattern = Pattern.compile("^https?://[^/]+/([^/]+)/.*$");

或者删除 anchor $:

Pattern pattern = Pattern.compile("^https?://[^/]+/([^/]+)/");

关于Java 正则表达式 : How to Match URL Path?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24538991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com