簡體   English   中英

PHP正則表達式-捕獲字符串的其余部分

[英]PHP regex - capture the remainder of a string

我正在嘗試使用以下正則表達式在一些HTML內容中插入一些文本:

if (preg_match('/(.*<\/a><\/p>)(.*?)/Ui', $content, $match))
        $custom_content = $match[1] . $title . $match[2];

我想要的結果是,在遇到第一個</a></p>之后,立即將$title插入到HTML中。 這很有效,但是無論我使用的是貪婪還是不貪婪的組合,第二個捕獲組始終保持空白。 結果是</a></p>之后的其余內容未附加到結果中。

我在這里做錯了什么?

為什么要煩惱捕獲您不關心的部分。 只需將第一組替換為其自身加上$title ,例如

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

具有諷刺意味的是,我在發布此消息30秒后找到了答案...在模式中添加's'選項也匹配新行:

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

不管怎么說,還是要謝謝你 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM