<br>Aggie<br><br>John<br><p>Hello world</p><br>Mary<br><br><b>Peter</b><br>
我想创建一个安全匹配这些的正则表达式:
<br>Aggie<br>
<br>John<br>
<br>Mary<br>
<br><b>Peter</b><br>
这可能是每对<i>
之间还有其他标记(例如<strike>
,<br>
...等),它们必须像{{1}一样被收集}}
正则表达式应该如何?
答案 0 :(得分:6)
如果您在SO上学到一件事,那就让它 - “不要用正则表达式解析HTML”。使用HTML解析器
答案 1 :(得分:1)
<br>.*?<br>
将匹配从一个<br>
标记到最接近的一个标记的任何内容。
使用正则表达式解析HTML的主要问题是正则表达式无法处理任意嵌套的结构。这不是您的示例中的问题。
答案 2 :(得分:0)
将字符串拆分为(<br>)+
。你会在结果的开头和结尾看到空字符串,所以你也需要删除它们。
如果你想保留<br>
,那么除非你知道结果中每个元素之前和之后都有一个,否则这是不可能的。