正则表达式选择标签结束多个buf后另一个标签

时间:2016-02-23 11:12:21

标签: java regex

这是我的文字:

Session

我想选择结尾的所有<img src="StackOverflow.jpg"><br> <br><br><br><ba> <img src="StackOverflow.jpg"><br><br> <br> <img src="StackOverflow.jpg"> <br><br> <br> <br> 标签(如果空间介于两者之间,我也想选择它。但它是可选的)并且在<br>之后不应该在开头。

所以预期的选择应该是:

  1. 第一行 - 一个>
  2. 第二行 - 不是因为<br>不在最后
  3. 第三行 - 是的,选择两个<br>
  4. 第四行 - 不,因为它开始
  5. 第五行 - 不,不在<br>
  6. 之后
  7. 第六行 - 不,它开始
  8. 到目前为止,我所管理的是:

    >

    但正则表达式只选择最后一个。积极回顾后贪婪的选择是不可能的?

    我正在研究regex101.com

2 个答案:

答案 0 :(得分:1)

通常你不会用正则表达式解析XHTML,但这看起来很简单,它不应该重要;

如果您想选择所有尾随的<br>代码( ?<br> ?)+$应该有效(example)。

如果您希望删除所有尾随的<br>代码,但不包含完全由<br>组成的代替(.)( ?<br> ?)+$$1的代码应该有效( example)。

如果您想选择所有尾随的<br>代码,而不是完全由<br>组成的代码,那么您可能需要使用外观。

答案 1 :(得分:0)

我不确定你要做什么,但是你去了:

(<br>)+(<br>|\\s)*$

也可能:

(<br>)+(<br>|\\s){1,}$

在notepad ++上进行了测试