我想从JSON数据中返回的文本中获取img
标记。我想从字符串中抓取它:
<img class="img" src="https://fbcdn-photos-c-a.akamaihd.net/hphotos-ak-frc3/1239478_598075296936250_1910331324_s.jpg" alt="" />
我必须使用什么正则表达式来匹配它?
我使用了以下内容,但它无效。
"<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>"
答案 0 :(得分:16)
您可以简单地使用此表达式来匹配img标记,如示例所示:
<img([\w\W]+?)/>
答案 1 :(得分:10)
你的正则表达式与字符串不匹配,因为它缺少结束/
。
编辑 - 不,/
不是必需的,所以你的正则表达式应该有效。但你可以稍微放松一下。
略有修改:
<img\s[^>]*?src\s*=\s*['\"]([^'\"]*?)['\"][^>]*?>
答案 2 :(得分:7)
请注意,出于各种原因,您不应使用正则表达式来解析HTML
<img\s+[^>]*src="([^"]*)"[^>]*>
或使用Jsoup
...
String html = "<img class=\"img\" src=\"https://fbcdn-photos-c-a.akamaihd.net/
hphotos-ak-frc3/1239478_598075296936250_1910331324_s.jpg\" alt=\"\" />";
Document doc = Jsoup.parse(html);
Element img = doc.select("img").first();
String src = img.attr("src");
System.out.println(src);