正则表达式问题。如何删除字符串中的最后一个“<br/>”

时间:2011-03-02 17:28:10

标签: java regex

如何删除看起来像

的字符串中的最后一个<br>
123 Address Street<br> Queens land<br>
London<br> <br> <br>

最后一个人不一定总是第五个。它可以是第二个,第三个等

我需要一个用于replaceAll()或replaceFirst()

的正则表达式

编辑:删除邮政编码

4 个答案:

答案 0 :(得分:10)

使用String.lastIndexOf告诉你它开始的索引,然后你可以自己剪掉它。

答案 1 :(得分:1)

String newStr = str.replaceAll("((<br[^>*]>\\s*)+)<br[^>*]>","$1");

注意:这并不完全符合您的要求,而是从一组多个<br>标记中删除最后一个<br>,由可选空格分隔。在您的方案中,结果是相同的,但可能还有其他方案。

如果你只是想摆脱最后的<br>,你可以这样做:

String newStr = str.replaceFirst("(.*)<br[^>*]>","$1");

答案 2 :(得分:0)

text = text.replaceAll("(?smi)<br\\s*/?>(?!\\<br).*?$", "$1")

答案 3 :(得分:0)

其中一个

"(?s)<br>(?=((?!<br>).)*$)"   or    "<br>(?=((?!<br>)[\\S\\s])*$)"