gpt4 book ai didi

java - 如何使用java模式提取两个字符串之间的字符串

转载 作者:行者123 更新时间:2023-12-01 19:58:02 26 4
gpt4 key购买 nike

我有一个字符串/subscription/ffcc218c-985c-4ec8-82d7-751fdcac93f0/subscribe 我想从中提取中间字符串/subscription/<....>/subscribe。我编写了以下代码来获取字符串

String subscriber = subscriberDestination.substring(1);
int startPos = subscriber.indexOf("/") + 2;
int destPos = startPos + subscriber.substring(startPos + 2).indexOf("/");
return subscriberDestination.substring(startPos, destPos + 2);

返回ffcc218c-985c-4ec8-82d7-751fdcac93f0

如何使用 java Pattern 库编写更好的代码?

最佳答案

如果你想使用正则表达式,一个简单的方法是:

return subscriber.replaceAll("/.*/([^/]*)/.*", "$1");
  • /.*/ 用于 /subscription/
  • ([^/]*) 匹配所有字符的捕获组,直到下一个 /
  • /.* 用于 /subscribe

replaceAll 的第二个参数表示我们要保留第一组。

您可以使用Pattern通过编译表达式来提高效率:

Pattern p = Pattern.compile("/.*/([^/]*)/.*"); ///store it outside the method to reuse it

Matcher m = p.matcher(subscriber);
if (m.find()) return m.group(1);
else return "not found";

关于java - 如何使用java模式提取两个字符串之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48806367/

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