gpt4 book ai didi

java - 两个定界符之间的子串

转载 作者:行者123 更新时间:2023-11-29 09:41:50 24 4
gpt4 key购买 nike

我有一个字符串:“这是一个应该使用的 URL http://www.google.com/MyDoc.pdf

我只需要提取从 http 开始到 pdf 结束的 URL: http://www.google.com/MyDoc.pdf

String sLeftDelimiter = "http://";
String[] tempURL = sValueFromAddAtt.split(sLeftDelimiter );
String sRequiredURL = sLeftDelimiter + tempURL[1];

这给我的输出是“应该使用的 http://www.google.com/MyDoc.pdf”

需要这方面的帮助。

最佳答案

这类问题正是正则表达式的用途:

Pattern findUrl = Pattern.compile("\\bhttp.*?\\.pdf\\b");
Matcher matcher = findUrl.matcher("This is a URL http://www.google.com/MyDoc.pdf which should be used");
while (matcher.find()) {
System.out.println(matcher.group());
}

正则表达式解释:

  • \b 在“http”之前有一个单词边界(即xhttp不匹配)
  • http 字符串“http”(请注意,这也匹配“https”和“httpsomething”)
  • .*? 任意字符 (.) 任意次数 (*),但尽量使用最少数量的字符 ( ?)
  • \.pdf 文字字符串“.pdf”
  • \b 在“.pdf”之后有一个单词边界(即.pdfoo 不匹配)

如果您只想匹配 http 和 https,请尝试在您的字符串中使用它而不是 http:

  • https?\: - 这匹配字符串 http,然后是可选的“s”(由 s 后的 ? 表示),然后是冒号。<

关于java - 两个定界符之间的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10171015/

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