簡體   English   中英

不成熟的組捕獲PHP正則表達式

[英]Premature group capturing PHP regex

我將HTML存儲在MySQL數據庫中,該數據庫正從Joomla遷移到新的WordPress安裝中。 我需要刪除每頁底部的一些標題文本。

HTML的示例:

<a href="some/link">link 1</a><p>some really long description</p><a href="another/link">link 2</a>CAPTION TEXT HERE[/caption]

我正在使用PHP腳本查詢數據庫並進行正則表達式匹配。

到目前為止,我的正則表達式:

/(<\/a>)(.*?)(\[\/caption\])/

我需要完全刪除第二個字幕組(CAPTION TEXT HERE),因此從本質上講,將組1,2和3替換為組1和3。組2可以包含任何字母數字或特殊字符。

我遇到的問題是捕獲組1與鏈接1的結束錨標記匹配,並一直持續到[/caption]

發生的是:

</a><p>some really long description</p><a href="another/link">link 2</a>CAPTION TEXT HERE[/caption]

被替換為:

<a href="some/link">link 1</a>[/caption]

當我真正需要的是:

<a href="some/link">link 1</a><p>some really long description</p><a href="another/link">link 2</a>[/caption]

先感謝您!

在匹配的文本中不包含>

(<\/a>)([^>]*?)(\[\/caption\])

演示

暫無
暫無

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

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