可能重复:
Regular expression to remove HTML tags正则表达式从字符串中删除HTML标签
是否有这将让两个HTML标记之间的值的表达式?
有鉴于此:
<td class="played">0</td>
我找这将返回0
,剥离<td>
标签的表达式。
可能重复:
Regular expression to remove HTML tags正则表达式从字符串中删除HTML标签
是否有这将让两个HTML标记之间的值的表达式?
有鉴于此:
<td class="played">0</td>
我找这将返回0
,剥离<td>
标签的表达式。
一个平凡的方法是什么也没有更换
<[^>]*>
。但取决于你的投入是多么糟糕,可能会失败。
替换是不好的方法。对于更多的匹配,你可以将它们合并为一个字符串 –
我不认为我得到你想说的话。 – Joey
鉴于'第一个第二个',在你的文章中使用'replaceAll'将会产生'FirstSecond'。 –
您可以用jsoup http://jsoup.org/
Whitelist whitelist = Whitelist.none();
String cleanStr = Jsoup.clean(yourText, whitelist);
JSoup是一个非常酷的库,但是除非OP计划做的不仅仅是简单的替换,他在他原来的文章中描述过它可能是一个相当重的解决方案 –
你不应该试图用正则表达式解析HTML做到这一点。 HTML不是一种常规语言,所以你提出的任何正则表达式可能会在一些神秘的边缘情况下失败。有关详细信息,请参阅this question的重要答案。虽然大多数是作为一个笑话格式化,但它是一个很好的观点。
下面的例子是Java,但正则表达式将是类似的 - 如果不相同 - 其他语言。
String target = someString.replaceAll("<[^>]*>", "");
假设你非HTML不包含任何<或>和您输入的字符串结构正确。
如果你知道他们是一个特定的标签 - 例如,你知道的文本只包含<td>
标签,你可以做这样的事情:
String target = someString.replaceAll("(?i)<td[^>]*>", "");
编辑: Ωmega提出了一个很好的点对另一篇文章发表评论说,如果存在多个标签,这将导致多个结果全部被挤在一起。
例如,如果输入的字符串是<td>Something</td><td>Another Thing</td>
,那么上述将导致SomethingAnother Thing
。
在多个标签被预期的情况下,我们可以这样做:
String target = someString.replaceAll("(?i)<td[^>]*>", " ").replaceAll("\\s+", " ").trim();
这取代了HTML用一个空格,然后崩溃的空白,然后修剪任何的结束。
例如:'
here
'。明白了吗? –您不应该对我的评论产生不利影响。我并没有让你失望,我现在可以通过降低你的想法来证明它,如果你想... –
OP说:“我是lo为表达式返回0,剥离标签。“帖子的标题是”用于从字符串中删除html标签的正则表达式“。我剥去了''标签。在OP的任何地方都没有提及任何有关pattern * matching *的内容。 –
难道是字符串,整个字符串,只是字符串?如果是这样,那么'\ d +'怎么样? – Ryan
我正在使用这样的东西:'(?:。+? | 。+? | <(?:!/?[a-zA-Z] +)。*?/?>)'并用'“”替换。 –
如果你正在阅读这个问题,请***请阅读接受的重复答案。这里的前两个答案都容易受到非常简单的输入。 TL; DR:正则表达式对于正确剥离HTML标记不是有用的。 –