0

我想从像这样的 json 数据返回的文本中获取 img 标签

‫#رصد| #انقلاب_3يوليو| اليوم ... مبني المركبات العسكري في صلاح سالم<br /> <br /> تصوير المواطن الصحفي :  عبدالرحمن النحاس‬&lt;br/><br/><a href="https://www.facebook.com/photo.php?fbid=598075296936250&amp;set=a.280183138725469.58204.103622369714881&amp;type=1&amp;relevant_count=1" id="" title="" target="" onclick="" style=""><img class="img" src="https://fbcdn-photos-c-a.akamaihd.net/hphotos-ak-frc3/1239478_598075296936250_1910331324_s.jpg" alt="" /></a>

我想抓住这个

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

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

我使用了这段代码,但它不起作用

String content = e.getString("content");
                    String img = "";
                    Pattern p = Pattern
                            .compile("<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>");
                    Matcher m = p.matcher(content);

                    if (m.matches()) {
                        Log.d("true", m.group(0).toString());
                        img = m.group(0).toString();
                    }
                    Log.d("image", "image : " + content);
4

2 回答 2

2

使用正则表达式来解析 HTML 是一个非常糟糕的主意

最好使用真正的 HTML 解析器并遍历 DOM 树来获得所需的内容。

您还需要注意正确的编码,因为您需要阿拉伯语文本。

于 2013-09-06T17:30:29.547 回答
1

嗯......你知道你可以得到 JSON 对象并在没有正则表达式的情况下解析它?这可能是最好的方法。然后,您可以直接删除内容,而不必担心从字符串中解析任何内容,因为它会自动为您将其放入变量中。

如何解析 JSON

由于@duffymo 在我上面发布的原因,弄乱正则表达式可能会变得非常混乱。

编辑:

我知道您要做什么....从内容部分解析图像是否正确?这里需要涉及两件事是的.. 正则表达式和 json 解析。您需要从 json 解析器中获取所有内容字段,然后在这些字段上使用正则表达式来提取图像。这就是你想要做的正确吗?

于 2013-09-06T17:41:20.533 回答