如何使用 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>", "")
或
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>"
。
replaceAll("\<\w*\>", "\ ").replaceAll("\", "\ ");删除所有标签 html XD , 2 "\"
我有一个包含不同种类 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>", "")
或
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>"
。
replaceAll("\<\w*\>", "\ ").replaceAll("\", "\ ");删除所有标签 html XD , 2 "\"