尝试从Java中的输出中仅获取URL

尝试从Java中的输出中仅获取URL,java,parsing,url,Java,Parsing,Url,我是Java新手,一直在寻找解决方案。。也许我没有找到正确的术语 我的目标是:我有一个Java类,它使用webdriver进入页面,执行搜索。。。并输出结果。输出结果具有带URL的纯文本。我所关心的是URL的返回。所以基本上,我想把我的输出像: 搜索结果1 http://www.somesite.com/blahblah 是搜索结果中的一个站点 但我想要的只是URL,我想转储其余的输出。我研究了“java解析”,但没有找到我想要的东西。任何指点都将不胜感激 查看regex包: 当然还有其他解析方

我是Java新手,一直在寻找解决方案。。也许我没有找到正确的术语

我的目标是:我有一个Java类,它使用webdriver进入页面,执行搜索。。。并输出结果。输出结果具有带URL的纯文本。我所关心的是URL的返回。所以基本上,我想把我的输出像:

搜索结果1
http://www.somesite.com/blahblah
是搜索结果中的一个站点


但我想要的只是URL,我想转储其余的输出。我研究了“java解析”,但没有找到我想要的东西。任何指点都将不胜感激

查看regex包:


当然还有其他解析方法,但使用regexp路径可能是最干净的。

查看regex包:

Pattern pattern = Pattern.compile("http://[^\\s]*");
Matcher matcher = pattern
    .matcher("Search result 1 http://www.somesite.com/blahbl+ah1 this is a site from the search results.\nSearch result 1 http://www.somesite.com/blahblah2 this is a site from the search results.");

for (int begin = 0; matcher.find(begin); begin = matcher.end())
{
    System.out.println(matcher.group(0));
}

当然还有其他的解析方法,但是使用regexp路径可能是最干净的。

或者更具体地说:
http\\\://[^]+
谢谢大家!完美的这就是我想要的。我不知道RegEx的事。但我上瘾了。这真的很酷。我将结果作为变量传递为.matcher(),然后使用您建议的模式。。。宾果。。。所有URL的。完美的再次感谢!也不要忘记检测https。如果您只需在stackoverflow.com上进行快速搜索,或者更具体地说像:
http\\\://[^]+
谢谢大家,那么应该有很多高级regexp检测文本中URL的示例!完美的这就是我想要的。我不知道RegEx的事。但我上瘾了。这真的很酷。我将结果作为变量传递为.matcher(),然后使用您建议的模式。。。宾果。。。所有URL的。完美的再次感谢!也不要忘记检测https。如果您只需在stackoverflow.com上快速搜索,那么应该有很多高级regexp检测文本中URL的示例。您的URL是否保证以“http://”开头?因为您说返回的文档是纯文本(非HTML)文本,所以您实际上不需要HTML解析器;像@Felix Ng这样的正则表达式解决方案应该很好。你的URL保证以“http://”开头吗?既然你说返回的文档是纯文本(非HTML),你就不需要HTML解析器;像@Felix Ng这样的正则表达式解决方案应该很好。
Pattern pattern = Pattern.compile("http://[^\\s]*");
Matcher matcher = pattern
    .matcher("Search result 1 http://www.somesite.com/blahbl+ah1 this is a site from the search results.\nSearch result 1 http://www.somesite.com/blahblah2 this is a site from the search results.");

for (int begin = 0; matcher.find(begin); begin = matcher.end())
{
    System.out.println(matcher.group(0));
}