如何使用replaceAll从String中删除某些html标签?

Ste*_*ers -1 html java tags parsing replaceall

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

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

我试过了:

string.replaceAll("<a>", "");
string.replaceAll("</a>", "");
Run Code Online (Sandbox Code Playgroud)

但它不起作用.这些标签仍保留在字符串中.为什么?

T.J*_*der 5

这些标签仍保留在字符串中.为什么?

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

string = string.replaceAll("<a>", "");
string = string.replaceAll("</a>", "")
Run Code Online (Sandbox Code Playgroud)

实例

要么

string = string.replaceAll("<a>", "").replaceAll("</a>", "")
Run Code Online (Sandbox Code Playgroud)

请注意,replaceAll将定义正则表达式的字符串作为其第一个参数."<a>"并且"</a>"都很好,但除非你需要使用正则表达式,否则请使用replace(CharSequence,CharSequence).如果使用replaceAll,只需要注意正则表达式中具有特殊含义的字符.

事实上,你可以replaceAll通过利用你使用正则表达式的事实来做到这一点:

string = string.replaceAll("</?a>", "");
Run Code Online (Sandbox Code Playgroud)

?/使得/可选,这样就替换"<a>""</a>".

实例