PHP正则表达式将MathML和HTML提取到一个保持有序的数组中

PHP正则表达式将MathML和HTML提取到一个保持有序的数组中,php,regex,Php,Regex,我有以下HTML: <p>This is a tag</p> <div>Another tag</p> <div><a href="#">anchor</a><div> <br> <br> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>x</mi> <mo&g

我有以下HTML:

<p>This is a tag</p>
<div>Another tag</p>
<div><a href="#">anchor</a><div>
<br>
<br>
<math xmlns="http://www.w3.org/1998/Math/MathML">
    <mi>x</mi>
    <mo>=</mo>
</math>
<hr><br>
这是一个标签

另一个标签



x =

我想将所有HTML和MathML提取到一个数组中,并保持它们的顺序:

[
   [0] => '<p>This is a tag</p>
    <div>Another tag</p>
    <div><a href="#">anchor</a><div>
    <br>
    <br>',
   [1] => '<math xmlns="http://www.w3.org/1998/Math/MathML">
        <mi>x</mi>
        <mo>=</mo>
    </math>'
   [2] => '<hr><br>'
]
[
[0]=>”这是一个标记

另一个标签



",, [1] => ' x = ' [2] =>'

' ]
Regex可以这样做吗,因为HR或BR标记可能没有关闭的飞溅?或者任何图书馆

任何帮助都将不胜感激。提前感谢。

使用此正则表达式:

"#(.*)(<math.*?</math>)(.*)#s"

“#”(*)(使用HTML解析器,而不是正则表达式。例如,进一步阅读: