2 个回答

写了一个正则,简单测试了一下,

<?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]);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题