gpt4 book ai didi

Java 替换 URL 中斜杠之间或之后的任何数字

转载 作者:行者123 更新时间:2023-11-30 02:52:05 25 4
gpt4 key购买 nike

在过去的一个小时里,我一直在用头撞墙,试图想出一种使用 Java 的 Eloquent 方法(应用程序是用 Java 编写的,所以我必须使用它)来处理特定的问题。我试图用主题标签替换 RESTful URL 中的任何数字(即使它有前导零),以便我们可以跟踪特定调用的次数,无论 ID 是什么。以下是我想要做的一些示例:

http://host.com/api/person/1234需要是http://host.com/api/person/#####

http://host.com/api/person/1234/jobs需要是http://host.com/api/person/#####/jobs

http://host.com/api/person/1234/jobs/321需要是http://host.com/api/person/#####/jobs/#####

http://host.com/api/person/abc1234/jobs需要入住http://host.com/api/person/abc1234/jobs

为了保持统一,将插入的主题标签始终是 5 个主题标签。我使用两个步骤完成此工作,我试图找出一种使用正则表达式和replaceAll 来完成此操作的方法,尽管如果其他人知道更好的方法来一步完成它,我也对此持开放态度。

最佳答案

您可以使用replaceAll()使用这个简单的正则表达式的方法:

(?<=/)\\d+

这意味着“匹配斜线(/)后的所有数字”。

示例:

List<String> urls = Arrays.asList("http://host.com/api/person/1234", "http://host.com/api/person/1234/jobs", "http://host.com/api/person/1234/jobs/321", "http://host.com/api/person/abc1234/jobs", "http://host.com/api/person/1234abc/jobs");
for (int i = 0; i < urls.size(); i++) {
urls.set(i, urls.get(i).replaceAll("(?<=/)\\d+(?=/|$)", "#####"));
}
System.out.println(urls.toString());

// Result:
// [http://host.com/api/person/#####, http://host.com/api/person/#####/jobs, http://host.com/api/person/#####/jobs/#####, http://host.com/api/person/abc1234/jobs, host.com/api/person/1234abc/jobs]

Ideone

关于Java 替换 URL 中斜杠之间或之后的任何数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318726/

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