正则表达式匹配除一个单词之外的所有内容

Bou*_*uki -1 php regex html-parsing

我正在尝试捕获以下模式"除数据外的所有内容"

这是搜索字符串:

<li data-extra="star" class = "result">a</li>
<li class = "result">b</li>
<li class = "result">c</li>
<li data-extra="star" class = "result">d</li>
<li class = "result">e</li>
Run Code Online (Sandbox Code Playgroud)

我想只匹配b,c和e(那些没有数据额外的)

我做过类似的事

<li(?!(data\-extra))class="result"(.*?)>
Run Code Online (Sandbox Code Playgroud)

但是这不起作用(使用php preg_match_all得到0结果)

Gor*_*don 6

使用xpath_match_all

$results = xpath_match_all('//li[not(@data-extra)]', $htmlString);
Run Code Online (Sandbox Code Playgroud)

如果您还想明确包含该类,请将XPath更改为

//li[not(@data-extra) and @class="result"]
Run Code Online (Sandbox Code Playgroud)

$results变量将包含找到的节点的innerHTML和outerHTML.