我们如何创建这样的正则表达式来提取数据?

时间:2009-11-19 15:20:31

标签: regex string

<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}一样被收集}}

正则表达式应该如何?

3 个答案:

答案 0 :(得分:6)

如果您在SO上学到一件事,那就让它 - “不要用正则表达式解析HTML”。使用HTML解析器

答案 1 :(得分:1)

<br>.*?<br>

将匹配从一个<br>标记到最接近的一个标记的任何内容。

使用正则表达式解析HTML的主要问题是正则表达式无法处理任意嵌套的结构。这不是您的示例中的问题。

答案 2 :(得分:0)

将字符串拆分为(<br>)+。你会在结果的开头和结尾看到空字符串,所以你也需要删除它们。

如果你想保留<br>,那么除非你知道结果中每个元素之前和之后都有一个,否则这是不可能的。