如何使用 replaceAll 从字符串中删除某些 html 标签?

How to remove certain html tags from a String with replaceAll?

我有一个包含不同种类 html 标签的字符串。

我想删除所有 <a></a> 标签。

我试过了:

string.replaceAll("<a>", "");
string.replaceAll("</a>", "");

但是没用。这些标签仍然保留在字符串中。为什么?

Those tags still remain in the string. Why?

因为replaceAll不直接修改字符串(不能,字符串是不可变的),它returns修改后的字符串。所以:

string = string.replaceAll("<a>", "");
string = string.replaceAll("</a>", "")

Live Example

string = string.replaceAll("<a>", "").replaceAll("</a>", "")

请注意 replaceAll takes a string defining a regular expression as its first argument. "<a>" and "</a>" are both fine, but unless you need to use a regular expression, use replace(CharSequence,CharSequence)。如果使用replaceAll,请注意正则表达式中具有特殊含义的字符。

事实上,您可以利用一个 replaceAll 来做到这一点,因为您正在使用正则表达式:

string = string.replaceAll("</?a>", "");

/ 之后的 ? 使 / 可选,因此它将替换 "<a>""</a>"

Live Example

replaceAll("\<\w*\>", "\ ").replaceAll("\", "\ ");删除所有标签 html XD , 2 "\"