提问者:小点点

如何在android中使用正则表达式匹配此字符串?


我想从json数据返回的文本中抓取img标签

‫#رصد| #انقلاب_3يوليو| اليوم ... مبني المركبات العسكري في صلاح سالم<br /> <br /> تصوير المواطن الصحفي :  عبدالرحمن النحاس‬<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中使用什么reqular表达式来匹配它

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

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);

共2个答案

匿名用户

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

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

匿名用户

好你知道你可以在没有正则表达式的情况下获取JSON对象并解析它吗?这可能是最好的办法。然后,您可以直接将内容剥离出来,而不用担心解析字符串中的任何内容,因为它会自动将内容放入变量中。

如何解析JSON

由于@duffymo在我上面发布的原因,与regex混在一起可能会变得非常混乱。

编辑:

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