我目前正在使用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/>"
显然必须删除最后两个标签。
提前感谢您的任何帮助
最诚挚的问候, 罗伯特
答案 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/]*>", "");