我写了一个代码来读取XML文件(Feed)中的新闻..我必须在列表视图中显示每个项目的描述...我用这个代码豌豆去掉里面存在的html标签描述标签:
else if ("description".equals(tagName)){
sourcedescription= parser.nextText();
description=Html.fromHtml(sourcedescription).toString();
Log.d("msg", description);
feedDescription.add(description);
}
一些项目我成功地显示了没有标签的描述,即以理解的方式,但我没有删除所有其他具有{iframe} {/ iframe}标签的项目的标签...我认为这个标签存在于具有“无描述”的项目的描述标签
<description><![CDATA[<p>{iframe height="600"}<a href="http://admreg.yu.edu.jo/index.php?option=com_content&view=article&id=606:------20132014&catid=87:2011-01-25-18-12-08&Itemid=438">http://admreg.yu.edu.jo/index.php?option=com_content&view=article&id=606:------20132014&catid=87:2011-01-25-18-12-08&Itemid=438</a><span style="line-height: 1.3em;">{/iframe}</span></p>]]></description>
我的问题是如何使用正则表达式删除iframe标记?
答案 0 :(得分:2)
可能的解决方案是
String regexp = "\\{/?iframe.*?\\}";
String text = "<description><![CDATA[<p>{iframe height=\"600\"}<a href=\"http://admreg.yu.edu.jo/index.php?option=com_content&view=article&id=606:------20132014&catid=87:2011-01-25-18-12-08&Itemid=438\">http://admreg.yu.edu.jo/index.php?option=com_content&view=article&id=606:------20132014&catid=87:2011-01-25-18-12-08&Itemid=438</a><span style=\"line-height: 1.3em;\">{/iframe}</span></p>]]></description>";
System.out.println(text.replaceAll(regexp, ""));
如果要删除标记iframe中的内容,请改用此正则表达式:
text.replaceAll("\\{iframe .*?\\}.*?\\{/iframe\\}", "")
答案 1 :(得分:2)
使用这些正则表达式:
\{iframe[^\}]*\} // to delete the opening tag
\{/iframe[^\}]*\} // to delete the closing tag
这些正则表达式不会删除iframe中的内容。
答案 2 :(得分:1)
注意:如果您有选项,请使用解析器。那说......快点又脏......
str.replaceAll("\\{/?iframe.*?\\}", "");
删除这些标记之间的内容。
str.replaceAll("\\{iframe.*?\\}.*?\\{/iframe\\}", "")
答案 3 :(得分:0)
HTML不是常规语言。不要使用RegEx,否则你会死。