你需要添加 .*? 在第一个里面 消极的先行断言 。如果你没有添加 .*? ,负向前瞻将检查紧接着的后续 <div class='content'> 标签。
.*?
<div class='content'>
<h4>(?:(?!<\/?h4>).)*?<\/h4>(?!.*?<div class='content'>)
DEMO
它将匹配最后一个 h4 标记,因为它没有任何后跟 <div class='content'> 标签。
h4