可以使用 斷言 實現
正則表達式的先行斷言和后行斷言一共有4種形式:
(?=pattern) 零寬正向先行斷言(zero-width positive lookahead assertion)
(?!pattern) 零寬負向先行斷言(zero-width negative lookahead assertion)
(?<=pattern) 零寬正向后行斷言(zero-width positive lookbehind assertion)
(?<!pattern) 零寬負向后行斷言(zero-width negative lookbehind assertion)
這里面的pattern是一個正則表達式。
$pattern = "/<p>((.(?!<p>))*)<\/p>/"; $str = "<p>ggfgfhhghgh </p><p>ggfgfhhghgh </p>"; $res = preg_match_all($pattern, $str, $matches);