1

标题说我猜,我想匹配所有</li>未进行的标签<br/>,我的尝试是这样的:

^(?!<br\/>$).*$<li>

但它不会工作。任何提示?

4

1 回答 1

5

你不需要.*$在两者之间。特别是那个锚在做危险。实际上,您根本不需要正则表达式中的锚点,除非您<br />在字符串的开头进行测试。

你正在测试<li>而不是</li>.

(?!...)适用于负前瞻。对于后视,您应该使用:(?<!...)

尝试使用这个正则表达式:

"(?<!<br/>)</li>"   // You don't need to escape `/`

请注意,对于更复杂的 HTML 解析情况,您应该避免使用 Regex。请改用 HTML 解析器。对于Java,你可以看看——JSoup

于 2013-08-09T09:50:12.990 回答