删除所有<tag> </tag>,其中包含文本

时间:2017-09-11 09:56:27

标签: android

我正在尝试删除所有标记为此类的文字(包括标签)

<tag>TEXT</tag>

来自String

我试过了

.replaceAll("<tag>.+/(tag)*>", "")

.replaceAll("<tag>.*(tag)*>", "")

但效果不正常,我无法用""

替换带标记的文字

4 个答案:

答案 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);
}

这里我所做的和输出是按预期进行的

输出您的长字符串