如何在java中使用正则表达式从字符串中删除一些html标记

如何在java中使用正则表达式从字符串中删除一些html标记,java,html,regex,Java,Html,Regex,我写了一个代码从XML文件(提要)中读取新闻。。我必须在列表视图中显示每个项目的描述。。。我用这段代码删除了描述标记中的html标记: else if ("description".equals(tagName)){ sourcedescription= parser.nextText(); description=Html.fromHtml(sourcedescription).

我写了一个代码从XML文件(提要)中读取新闻。。我必须在列表视图中显示每个项目的描述。。。我用这段代码删除了描述标记中的html标记:

else if ("description".equals(tagName)){
                             sourcedescription= parser.nextText();
                             description=Html.fromHtml(sourcedescription).toString();
                             Log.d("msg", description);
                             feedDescription.add(description);

                         }
一些项目我成功地显示了它的描述,没有标记,即以一种可以理解的方式,但是我没有删除其他一些项目的所有标记,这些项目有{iframe}{/iframe}标记。。。我认为这个标签存在于“无描述”项目的描述标签中

{iframe height=“600”}{/iframe}

]>

我的问题是如何使用正则表达式删除iframe标记?

一个可行的解决方案是

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

一个可行的解决办法是

    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[^\}]*\}   // to delete the opening tag
\{/iframe[^\}]*\}  // to delete the closing tag
这些正则表达式不会删除iframe中的内容。

使用这些正则表达式:

\{iframe[^\}]*\}   // to delete the opening tag
\{/iframe[^\}]*\}  // to delete the closing tag

这些正则表达式不会删除iframe中的内容。

HTML不是常规语言。不要使用正则表达式,否则你会死。

HTML不是一种常规语言。不要使用正则表达式,否则你会死。

注意:如果有选择,请使用解析器。也就是说…为了一个又快又脏的

str.replaceAll("\\{/?iframe.*?\\}", "");
删除这些标记之间的内容

str.replaceAll("\\{iframe.*?\\}.*?\\{/iframe\\}", "")

注意:如果您有选择,请使用解析器。也就是说…为了一个又快又脏的

str.replaceAll("\\{/?iframe.*?\\}", "");
删除这些标记之间的内容

str.replaceAll("\\{iframe.*?\\}.*?\\{/iframe\\}", "")

为什么是正则表达式?为什么不为这项工作使用合适的工具,比如XPath?为什么使用正则表达式?为什么不为这项工作使用合适的工具,比如XPath?好的,这项工作。。谢谢:),,但是这个标签里面还是出现了什么:我的意思是它的内容是href的值@莫里瓦雷:非常感谢:(()()()()())()))好的。。谢谢:),,但是这个标签里面还是出现了什么:我的意思是它的内容是href的值@莫利瓦雷:非常感谢:()()()()()())())()))好的@SameerSawla这是一个删除评论的答案好吧,我将尝试不再做。哈哈,这是一个有趣的评论@SameerSawla这是对已删除评论的回答