19

我想img从这样的 JSON 数据返回的文本中获取一个标签。我想从一个字符串中获取这个:

<img class="img" src="https://fbcdn-photos-c-a.akamaihd.net/hphotos-ak-frc3/1239478_598075296936250_1910331324_s.jpg" alt="" />

我必须使用什么正则表达式来匹配它?

我使用了以下内容,但它不起作用。

"<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>"
4

4 回答 4

23

您可以简单地使用此表达式来匹配 img 标签,如示例中所示:

<img([\w\W]+?)/>
于 2013-09-06T19:24:27.607 回答
15

您的正则表达式与字符串不匹配,因为它缺少结束符/.

编辑 - 不,/没有必要,所以你的正则表达式应该可以工作。但是你可以像下面这样放松一点。

稍作修改:

 <img\s[^>]*?src\s*=\s*['\"]([^'\"]*?)['\"][^>]*?>
于 2013-09-06T19:30:16.177 回答
10

请注意,由于各种原因,您不应使用正则表达式来解析 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);
于 2013-09-06T19:36:02.823 回答
0

我面临同样的情况,我尝试了这个,它对我有用。

(<img)[^/>]*(/>|>)

这是解释:

用于解释上述正则表达式的图像

这个解释来自网站https://extendsclass.com/regex-tester.html

于 2021-09-27T15:30:32.930 回答