从字符串末端剪切-Tags

时间:2011-02-16 23:14:38

标签: java regex string

我目前正在使用Java EE开发Web应用程序,我正在使用Rich-Javascript-Editor(http://www.primefaces.org/showcase/ui/editor.jsf)。 由于用户可以轻松添加过多的转换为linebreak-tag的换行符,因此我需要从String的末尾删除所有这些标记。

使用Regex是否有一种优雅的方式来实现这一目标?

示例String将是:

"This is a test <b>bold</b><br/><br/>" 

显然必须删除最后两个标签。

提前感谢您的任何帮助

最诚挚的问候, 罗伯特

4 个答案:

答案 0 :(得分:6)

这样的事情:

String s = "This is a test <b>bold</b><br/><br/>";
String s2 = s.replaceAll("(\\s*<[Bb][Rr]\\s*/?>)+\\s*$", "");
// s2 = "This is a test <b>bold</b>";

请注意,它还会删除尾随空格;如果您不想要,可以删除最终的\\s*

答案 1 :(得分:3)

这是一段简单的Java代码,用于从字符串"<br/>"的末尾删除子字符串myString的所有实例:

myString = myString.replaceAll("(<br/>)+$", "");

答案 2 :(得分:0)

试试这个。它为我工作

myString =myString .replaceAll("<br/>", "");

答案 3 :(得分:0)

对于大多数情况,这应该可以解决问题。

此正则表达式考虑了<br>的不同形式出现的大多数情况

以下所有内容均为有效<br>声明:

-<br>
-<br/>
-<br />
-<br / >
-<br/ >
-<br //// >

此正则表达式标识<br>

的所有此类形式
string = string.replaceAll("<br[\\s/]*>", "");