Regex 我们如何创建这样一个正则表达式来提取数据? 阿吉约翰

Regex 我们如何创建这样一个正则表达式来提取数据? 阿吉约翰,regex,string,Regex,String,你好,世界玛丽彼得 我想创建一个与以下内容安全匹配的regexp: <br>Aggie<br><br>John<br><p>Hello world</p><br>Mary<br><br><b>Peter</b><br> Aggie 约翰 玛丽 彼得 这可能是因为在每对之间有其他标记(例如,…等),它们必须像彼得一样收集 regexp应该是什么样子?

你好,世界


玛丽
彼得
我想创建一个与以下内容安全匹配的regexp:

<br>Aggie<br><br>John<br><p>Hello world</p><br>Mary<br><br><b>Peter</b><br>

Aggie

约翰

玛丽

彼得
这可能是因为在每对

之间有其他标记(例如
…等),它们必须像

彼得
一样收集


regexp应该是什么样子?

如果你从中了解到一件事,那就是“不要用regex解析HTML”。使用HTML解析器将字符串拆分为

)+
。您将在结果的开头和结尾得到空字符串,因此您也需要删除它们

如果要保留

,则这是不可能的,除非您知道结果中的每个元素前后都有一个。


*?
<br>Aggie<br>
<br>John<br>
<br>Mary<br>
<br><b>Peter</b><br>
将匹配从一个

标记到最接近的下一个标记的任何内容


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

sigh我理解,有时使用HTML解析器做这件事会更好。但这实际上只是一个虚构的例子,我想看看如果真的必须在regex中完成,它会是什么语法。对于任何自动指向这一个的人,引用同一篇博文:“许多程序在解析时既不需要也不应该预测整个HTML世界。”如果你记住这一点,解析类似HTML的输入是完全可以的。这个问题缺少必要的bobince引用:@candiru:asker明确要求一个“安全”的regexp。regexp可以用于一次性黑客,但它们肯定不安全。intgr:链接自Jeff的帖子,我在对问题的评论中链接了该帖子。这只是另一个指向取消引用的指针:-)不过,您仍然可以在每个结果之前添加一个

。不太好,但是如果OP需要

。。。
<br>.*?<br>