从带有文本的字符串中获取URL

时间:2013-07-17 18:32:27

标签: java regex

我有一堆像这样的字符串:

Some text, bla-bla http://www.easypolls.net/poll.html?p=51e5a300e4b084575d8568bb#.UeWjBcCzaaA.twitter

我需要将这个String解析为两个:

Some text, bla-bla

http://www.easypolls.net/poll.html?p=51e5a300e4b084575d8568bb#.UeWjBcCzaaA.twitter

我需要将它们分开,但是,当然,仅解析URL就足够了。

你能帮助我吗,我怎样才能解析像这样的字符串。

4 个答案:

答案 0 :(得分:2)

这取决于您希望解析器的强大程度。如果您可以合理地期望每个URL都以http://开头,那么您可以使用

  string.indexOf("http://"); 

返回传入的字符串的第一个字符的索引(如果没有出现字符串,则返回-1)。

仅使用URL返回子字符串的完整代码:

  string.substring(string.indexOf("http://"));

这是Java的String类的文档。让这成为你编程的朋友! http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

答案 1 :(得分:2)

使用split

    String str = "Some text, bla-bla http://www.easypolls.net/poll.html?p=51e5a300e4b084575d8568bb#.UeWjBcCzaaA.twitter";
    String [] ar = str.split("http\\.*");
    System.out.println(ar[0]);
    System.out.println("http"+ar[1]);

答案 2 :(得分:1)

尝试这样的事情:

    String string = "sometext http://www.something.com";
    String url = string.substring(string.indexOf("http"), string.length());
    System.out.println(url);

或使用拆分。

答案 3 :(得分:-2)

我知道在PHP中你可以运行explode()(http://www.php.net/manual/en/function.explode.php)函数。您可以选择要爆炸的角色。例如,你可以在“http://”

爆炸

所以通过PHP运行代码看起来像:

$string  = "Some text, bla-bla http://www.easypolls.net/poll.html?p=51e5a300e4b084575d8568bb#.UeWjBcCzaaA.twitter";
$pieces = explode("http://", $string);
echo $pieces[0]; // Would print "Some text, bla-bla"
echo $pieces[1]; // Would print "www.easypolls.net/poll.html?p=51e5a300e4b084575d8568bb#.UeWjBcCzaaA.twitter"