使用PHP正则表达式在字符串后查找以下x实例?

使用PHP正则表达式在字符串后查找以下x实例?,php,regex,Php,Regex,我想用name=groups预匹配p标记后面的所有div id。如何用PHP编写这个表达式?html格式不正确,因此我无法使用XPath <p name="groups"> <div id="55">fifty-five</div> <div id="65">sixty-five</div> <div id="75">seventy-five</div> </p> 虽然使用正则表达式解析

我想用name=groups预匹配p标记后面的所有div id。如何用PHP编写这个表达式?html格式不正确,因此我无法使用XPath

<p name="groups">
  <div id="55">fifty-five</div>
  <div id="65">sixty-five</div>
  <div id="75">seventy-five</div>
</p>
虽然使用正则表达式解析html通常并不好,但使用它来匹配有限作业的某些html片段也可以

这是正则表达式:

<p name="groups">(\s*<div id="([0-9]+)">([a-z\-]+)</div>)+\s*</p>

请发布使用XPath但失败的代码。html格式不正确,所以我不能使用XPath-你认为正则表达式会更好吗?再想一想…你能不能给我指出一个合适的匹配点?我知道正则表达式可以工作,而不是XPath——这就是为什么我把它包括在问题中……顺便说一句,dom扩展可以很好地从soup html恢复。您还可以首先通过HTMLTidy扩展运行html。
<p name="groups">(\s*<div id="([0-9]+)">([a-z\-]+)</div>)+\s*</p>