从字符串中获取图像链接和文本

时间:2013-03-01 06:27:28

标签: java android regex string

我有这个字符串

<div><img width="100px" src="http://www.mysite.com/Content/dataImages/news/small/some-pic.png" /><br />This is some text that I need to get.</div>

我需要从Java上面的字符串中获取图像链接和文本This is some text that I need to get.。谁能告诉我怎么能这样做?

4 个答案:

答案 0 :(得分:1)

使用正则表达式来获得你想要的东西。

答案 1 :(得分:1)

如果这就是你要做的全部,那么使用正则表达式引入额外的包是没有意义的: 模式“(?&lt; = src = \”)(。*?)(?= \“)”可用于获取链接,您可以修改它以提供文本。

答案 2 :(得分:1)

试试这个,只要你必须改变模式。

String str = "<div><img width=\"100px\" src=\"http://www.mysite.com/Content/dataImages/news/small/some-pic.png\" /><br />This is some text that I need to get.</div>";
Pattern p = Pattern.compile("src=\"(.*?)\" /><br />(.*?)</div>");
Matcher m = p.matcher(str);
if (m.find()) {
    String link = m.group(1);
    String text = m.group(2);
}

答案 3 :(得分:1)

我的解决方案是:

String tmp=xpp.nextText();
desc=android.text.Html.fromHtml(tmp).toString();
img=FindUrls.extractUrls(tmp);

用于从我使用的字符串中提取文本:

desc=android.text.Html.fromHtml(tmp).toString();
img=FindUrls.extractUrls(tmp);

对于字符串中的链接,我使用了这个函数:

 public static String extractUrls(String input) {

        String result = null;
        Pattern pattern = Pattern.compile(
            "\\b(((ht|f)tp(s?)\\:\\/\\/|~\\/|\\/)|www.)" + 
            "(\\w+:\\w+@)?(([-\\w]+\\.)+(com|org|net|gov" + 
            "|mil|biz|info|mobi|name|aero|jobs|museum" + 
            "|travel|[a-z]{2}))(:[\\d]{1,5})?" + 
            "(((\\/([-\\w~!$+|.,=]|%[a-f\\d]{2})+)+|\\/)+|\\?|#)?" + 
            "((\\?([-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" + 
            "([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)" + 
            "(&(?:[-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" + 
            "([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)*)*" + 
            "(#([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)?\\b");

        Matcher matcher = pattern.matcher(input);
        if (matcher.find()) {
            result=matcher.group();
        }
        return result;
    }

希望它会帮助有类似问题的人