假设我有一个String
,在字符串的结尾处有多个<br>
标签,
如何一次性删除所有内容?
我尝试使用if(text.endsWith("<br>") text.replace("<br>", "");
,但这只会删除所有其他之一。
答案 0 :(得分:1)
如果只想在字符串末尾删除它们:
text = text.replaceAll("(<br>)*$", "");
必须使用$
锚以确保它不会替换字符串中其他较早出现的内容。
如果需要,您可以不使用正则表达式来实现:
int a = text.length();
while (a >= "<br>".length() && text.regionMatches(a - "<br>".length(), "<br>", 0, "<br>".length())) {
a -= "<br>".length();
}
text = text.substring(0, a);
答案 1 :(得分:1)
尝试一下,
text = text.replaceAll("<br>","").replaceAll("<br>","");
答案 2 :(得分:0)
我认为Java中没有特定的方法可以执行此操作。但是,您可以使用while循环来实现:
String text = "hello world <br><br><br>";
while (text.endsWith("<br>")) {
text = text.substring(0, text.length() - 4);
}
答案 3 :(得分:0)
在这种情况下,您应该看一下Javadoc官方文档:
您要查找的方法是公共String replaceAll(字符串正则表达式,字符串替换),它将替换所有出现的指定模式。 在您的情况下,应该是这样的:
fullText.replaceAll("<br>", ""),
其中fullText是包含要处理的所有文本的变量。
编辑:根据您的评论,我只想删除字符串末尾的br,并且假定 text 由多行组成。 由于replaceAll可以使用正则表达式,因此您应该可以执行以下操作:
fullText.replaceAll("<br>\\n", "\\n"),
编辑2 :我希望我能发表评论...请忽略我的回答,我想正确的答案是安迪·特纳。仅删除该行末尾的 br 似乎确实可以正常工作。