正则expression式从string中删除HTML标签

可能重复:
正则expression式去除HTML标签

是否有一个expression式将获得两个HTML标签之间的值?

鉴于此:

<td class="played">0</td> 

我正在寻找一个expression式,将返回0 ,剥离<td>标签。

下面的例子是Java,但是正则expression式对于其他语言将是相似的 – 如果不是相同的话。


 String target = someString.replaceAll("<[^>]*>", ""); 

假设你的非HTML不包含任何<或>,并且你的inputstring结构正确。

如果你知道他们是一个特定的标签 – 例如你知道文本只包含<td>标签,你可以做这样的事情:

 String target = someString.replaceAll("(?i)<td[^>]*>", ""); 

编辑:欧米茄在另一篇文章的评论提出了一个好点,这将导致多个结果都挤在一起,如果有多个标签。

例如,如果inputstring是<td>Something</td><td>Another Thing</td> ,那么上面就会产生SomethingAnother Thing

在预期有多个标签的情况下,我们可以这样做:

 String target = someString.replaceAll("(?i)<td[^>]*>", " ").replaceAll("\\s+", " ").trim(); 

这将用一个空格replaceHTML,然后折叠空白,然后修剪任何两端。

一个简单的方法是replace

 <[^>]*> 

什么都没有 但取决于你的投入是多么糟糕,可能会失败。

你可以用jsoup http://jsoup.org/

 Whitelist whitelist = Whitelist.none(); String cleanStr = Jsoup.clean(yourText, whitelist);