我有一个包含法院案卷系统 HTML 的数据库,这样我就可以轻松地在案卷中搜索某些动议、简报等。案卷中的每个新条目都显示有一条线,以将条目分隔为新条目.
每个新条目都以标签开头。案卷条目中的下一个可能是我正在寻找的。例如,如果我搜索“强制执行动议”,那么当正则表达式找到该信息时,它会提取该信息(直接指向法院网站上扫描文档的链接)。我想在我的搜索结果中显示整个案卷条目,以便我可以看到“执行动议”并确定这是“执行探视的动议”还是“执行和解的动议”。
我遇到的问题是每个文档条目都以相同的 TBODY 标签开头,所以如果我使用类似的 reged
/\<TBODY class=\"docketEntry\"\>(.*?)(motion to enforce)/i
返回的匹配项是页面上的第一个 TBODY 条目以及介于两者之间的所有文本,直到它到达文本“要强制执行的动议”。我不想这样做,因为我只想在条目中使用“强制执行的动议”进入案卷条目的开头。感觉就像我需要找到“强制执行的动议”语言并回到代码的 TBODY 部分,但我不确定如何向后工作,甚至是否可能。
我的另一个想法是做一个 strrev() 然后匹配它并将字符串反转,但我认为可能有更好的方法来做到这一点。
我的另一个想法是找到 TBODY,但如果它在进入“进入动议”语言之前找到另一个 TBODY,它不会在返回的匹配结果中包含第一个 TBODY。
例子:
<TBODY class="docketEntry">
some uninteresting docket entry here
</TBODY>
<TBODY class=docketEntry">
Motion to Enforce Visistation
</TBODY>
使用 (.*?),整个示例将是匹配的,但我只希望 TBODY 紧接在“执行动议”之前。我的想法是,如果它只匹配一个 TBODY 后跟除另一个 TBODY 以外的任何文本的模式,然后是“强制执行的动议”文本,那将给我正是我想要的。
这样做的目的是能够在 MySQL 查询中使用它,并准确获取我需要的内容,从而在我得到结果后消除解析或匹配任何内容的步骤。
谢谢你的帮助!
贾罗德
编辑:这是 6 年前的事,从那以后我就知道为什么 HTML 上的正则表达式是个坏主意。它很慢并且容易出错。我发现的最好方法是[Simple HTML DOM 1.5] 1