PHP正则表达式-捕获字符串的剩余部分

PHP正则表达式-捕获字符串的剩余部分,php,regex,Php,Regex,我试图使用以下正则表达式在一些HTML内容的中间插入一些文本: if (preg_match('/(.*<\/a><\/p>)(.*?)/Ui', $content, $match)) $custom_content = $match[1] . $title . $match[2]; if(preg_匹配('/(.*)(.*)/Ui',$content,$match)) $custom_content=$match[1]$标题$匹配[2]; 我想要的结

我试图使用以下正则表达式在一些HTML内容的中间插入一些文本:

if (preg_match('/(.*<\/a><\/p>)(.*?)/Ui', $content, $match))
        $custom_content = $match[1] . $title . $match[2];
if(preg_匹配('/(.*)(.*)/Ui',$content,$match))
$custom_content=$match[1]$标题$匹配[2];
我想要的结果是在遇到第一个

之后立即将
$title
插入HTML。尽管如此,第二个捕获组始终保持为空,不管我使用贪婪/不贪婪的组合。结果是

之后的剩余内容不会附加到结果中


我在这里做错了什么?

为什么要抓拍你不在乎的部分呢。只需将第一个组替换为自身加上
$title
,例如

$custom_content = preg_replace('@(</a></p>)@Ui', '$1' . $title, $content, 1);
$custom\u content=preg\u replace('@(

)@Ui','$1'.$title,$content,1);
讽刺的是,我在发布此消息30秒后找到了答案。。。将“s”选项添加到模式中也会匹配新行:

/(.*<\/a><\/p>)(.*?)/Uis
/(.*)(.*)/ui

无论如何,谢谢:-)

谢谢,这是一种更好的方法。以后,请提供一些您正在使用的内容作为示例。如果我们无法复制您试图做的事情,那么就很难帮助您解决您的问题。