我正在尝试删除所有标记为此类的文字(包括标签)
<tag>TEXT</tag>
来自String
。
我试过了
.replaceAll("<tag>.+/(tag)*>", "")
或
.replaceAll("<tag>.*(tag)*>", "")
但效果不正常,我无法用""
答案 0 :(得分:1)
我不确切地知道你想要什么,所以这里有几个选择:
String text = "ab<tag>xyz</tag>cd";
// Between
text.replaceAll("<tag>.+?<\/tag>", "<tag></tag>"); // ab<tag></tag>cd
// Everything
text.replaceAll("<tag>.+?<\/tag>", ""); // abcd
// Only tags
text.replaceAll("<\/?tag>", ""); // abxyzcd
编辑:
问题是?
之后缺少.+
。问号只与第一次出现匹配,因此当存在多个标签时它会起作用。
答案 1 :(得分:0)
改为此,
String nn1="<tag>TEXT</tag>";
nn1=nn1.replace("<tag>","");
nn1=nn1.replace("</tag>","");
OR
String nn1="<tag>TEXT</tag>";
nn1=nn1.replaceAll("<tag>","");
nn1=nn1.replaceAll("</tag>","");
输出:TEXT
我希望这会对你有所帮助。
答案 2 :(得分:0)
您可以使用以下正则表达式。
.replaceAll("<tag>.+</tag>", "");
这会删除所有标记,无论它是HTML还是XML标记。
答案 3 :(得分:0)
public static void removeTAG()
{
String str = "<tag>Your Long String</tag>";
for(int i=0;i<str.length();i++)
{
str = str.replace("<tag>", "");
str = str.replace("</tag>", "");
}
System.out.println(str);
}
这里我所做的和输出是按预期进行的
输出您的长字符串