时间:2021-07-01 10:21:17 帮助过:29人阅读
一些内容里的标签
(这里有任意内容和标签)
( 这里也有任意内容和标签)
然后项替换成这样:
(这里有任意内容和标签)( 这里也有任意内容和标签)

简单说就是img外面包上figure然后抽出来放到P后面,然后用preg_replace该怎么写呢?
俺的正则比较菜,现在有个正则替换的问题一直搞不定,需求是这样的:
一些内容里的标签
(这里有任意内容和标签)
( 这里也有任意内容和标签)
然后项替换成这样:
(这里有任意内容和标签)( 这里也有任意内容和标签)

简单说就是img外面包上figure然后抽出来放到P后面,然后用preg_replace该怎么写呢?
我可否理解为,
提取p下面的所有img标签到p外,如果是多个img,这个需要使用preg_match才行
并且p里面会有其他标签,除了p标签外
//正则
$p = '#.*?)>(?.*?)(?
\)(?.*?)
#i';
//替换
$r = '$https://www.gxlcms.com/2$4
$https://www.gxlcms.com/3 ';
//原内容
$s = 'fsdfsdfsf
kolja;ad;lasd
';
echo preg_replace($p, $r, $s);
// 结果:
// fsdfsdfsfkolja;ad;lasd
![]()
$s = 'fsdfsdfsf
kolja;a
d;lasd
asdaa
';
echo preg_replace_callback('#.*?)>(?.*?)
#', function($matches) {
preg_match_all('##', $str = $matches[0], $matcheshttps://www.gxlcms.com/1, PREG_OFFSET_CAPTURE );
foreach (array_reverse($matcheshttps://www.gxlcms.com/1[0]) as $v)
$str = substr_replace($str, '', $v[https://www.gxlcms.com/1], strlen($v[0]));
return $str.''.implode('',array_map(function($v){return $v[0];}, $matcheshttps://www.gxlcms.com/1[0])).' ';
}, $s);
// 结果:
// fsdfsdfsfkolja;ad;lasd


asdaa