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