当前位置: 首页 > 面试题库 >

两个定界符之间的子字符串

何华灿
2023-03-14
问题内容

我有一个字符串,例如:“这是应该使用的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之后表示),然后是冒号。


 类似资料:
  • 问题内容: 我有一个像 “ ABC [这是为了提取]” 我想提取Java中的部分。我正在尝试使用split,但是它不能按我想要的方式工作。有人有建议吗? 问题答案: 如果您的字符串中只有一对方括号(),则可以使用:

  • 问题内容: 我有绳子。我想在组织名称之后(在两个“ ..”字符之后)和管道字符之前获取子字符串。因此,输出字符串应为- 。你能帮忙吗? 我一直在尝试形成这样的正则表达式,但似乎没有用。 问题答案: 您可以使用它。 编辑: 这将恰好匹配两个点,后跟一个或多个字符,直到字符串末尾为止。

  • 问题内容: 我有这样的java字符串: 我想删除标签。我还有一些其他字符串,其中标签的长度更长,因此我想找到一种方法来删除“ <>”字符之间的所有内容,包括那些字符。 一种方法是使用将字符串与regEx进行比较的内置字符串方法,但是我不知道如何编写它们。 问题答案: 注意使用正则表达式时,解析HTML(由于其允许的复杂性),但是,对于“简单” HTML,以及简单的文本(文本没有字面建议或它)这将工

  • 问题内容: 如何找到两个子字符串之间的字符串? 我当前的方法是这样的: 但是,这似乎效率很低而且不合Python。什么是做这样的更好的方法? 忘了提:该字符串可能无法启动,并最终和。他们之前和之后的字符可能更多。 问题答案:

  • 问题内容: 数据如下所示: 我希望它看起来像这样: 摆脱一个或另一个很简单。 这: 给我这样的建议:倡议:可信来源倡议:及时的倡议:数据库规范化 还有这个: 给我这个: 很难弄清楚如何将两者结合起来。 问题答案: 只是使用怎么样? 或者,如果您不知道前缀有多长时间: 这是一个。

  • 问题内容: 我试图从一个较大的字符串中提取一个字符串,使它在’:’和’;’之间得到一切。 当前 期望的输出 问题答案: 你可以试试这个