写了一个正则,简单测试了一下, <?php $a = <<<EOF <p> ###fa111fdsf### </p> adf adsf sa <p> ### fsdaf222asdf ###</p> <p> ### fsdaf333 asdf ###</p> EOF; var_dump($a); echo PHP_EOL; $result = []; $pattern = '/<p>[\s]*#{3}([\s\S]*?)#{3}[\s]*<\/p>/'; $int = preg_match_all($pattern, $a, $result); var_dump($int, $result); 基本满足你的需求了。 要注意的是那个非贪婪。
我写了一个简单的,不知道能不能满足题主的要求: $s = '<p>test</p><p>测试</p><p>加速度</p><p>我</p>'; preg_match_all('/<p>(.*?)<\/p>/', $s, $match); var_dump($match[1]);
写了一个正则,简单测试了一下,
基本满足你的需求了。
要注意的是那个非贪婪。