只有当它不是 html 标记的一部分时,我才尝试匹配字符串。
例如在搜索字符串时:“abc”。
<a href="foo.html">abc def</a>
应该匹配
<p> foo bar foo abc foo bar</p>
应该匹配
但
<a href="abc.html">foo</a>
不应该匹配。
谢谢您的帮助!
只有当它不是 html 标记的一部分时,我才尝试匹配字符串。
例如在搜索字符串时:“abc”。
<a href="foo.html">abc def</a>
应该匹配
<p> foo bar foo abc foo bar</p>
应该匹配
但
<a href="abc.html">foo</a>
不应该匹配。
谢谢您的帮助!
我真的不会使用正则表达式来匹配 HTML,因为 HTML 不是常规的,并且有很多边缘情况会让你绊倒。对于除了最简单的情况之外的所有情况,我都会使用 HTML 解析器(例如这个用于 PHP 的解析器)。
无论如何,如果您想使用正则表达式,Brian 有一个观点,那就是适合您的输入:
.*>[^<]*abc[^<]*<.*
我非常确信任何正则表达式都会在某些 CDATA 部分上中断。
您正在寻找的是 DOM 解析器。这将去除所有 HTML 并为您提供您正在检查的页面的纯文本,然后您可以在其上进行匹配。不确定您的用例是什么,但我不是假设您没有操作 DOM,否则您将使用 JavaScript。
如果您只是提取信息,请使用The Simple HTML DOM Parser之类的东西解析页面,然后与您可以从解析对象获得的纯文本进行匹配。