[英]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>[^\/]+)\/
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.