繁体   English   中英

从请求中提取特定字段 URL

[英]Extract particular field from request URL

我在 java 中有一个 rest API 请求 ZE6B391A8D2C4D458702A23A8B6

/protected/{accountId}/accountassets/*

现在,大多数情况下,这个 API 使用以下格式调用/protected/{accountId}/accountassets/{userId}/userAssets/{msId}/*

如果使用上述 URL 模式调用 API 时,我需要在“userAssets”之后提取值,即 msId 值。

我可以很长一段时间,首先在我的 url 中找到 userAssets 的索引,然后从那里遍历直到我找到第二个“/”,然后我的结果就会在那里。

但是在 java 中是否有一些已经内置的方法。

例如,在 lua 中有一个方法string.match 在上述示例的情况下,我可以使用string.match(url,'.*/userAssets/(%d+).*')提取 lua 中的 msId。

我试图在 java 中寻找这种方法。

您可以使用以下正则表达式:

\/userAssets\/(?<userAssets>[^\/]+)\/

正则表达式101.com


String url = "/protected/{accountId}/accountassets/{userId}/userAssets/{msId}/*";

String regex = "\\/userAssets\\/(?<userAssets>[^\\/]+)\\/";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(url);

if (matcher.find())
    System.out.println(matcher.group("userAssets"));    // {msId}
else
    System.out.println("not found");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM