簡體   English   中英

如何在PHP中使用正則表達式查找和替換兩個標簽之間的字符串?

[英]How to find and replace string between two tags using regex in PHP?

如果我們有這樣的文字:

[SYS 1]第2頁的第1頁:[/ SYS]

Lorem Ipsum只是印刷和排版行業的偽文本。 Lorem Ipsum一直是行業標准...

[SYS 2]第2頁,第2頁:[/ SYS]

它不僅生存了五個世紀,而且在電子排版方面也取得了飛躍,但基本上沒有改變。

如何在[SYS]和[/ SYS]標記之間僅保留文本? 像這樣:

第1頁,共2頁:

Lorem Ipsum只是印刷和排版行業的偽文本。 Lorem Ipsum一直是行業標准...

第2頁,共2頁:

它不僅生存了五個世紀,而且在電子排版方面也取得了飛躍,但基本上沒有改變。

我認為以下正則表達式會在兩個沒有屬性的標記中找到文本:

/\[SYS\](.+?)\[\/SYS\]/

但是,我應該如何用該標簽的內部文本(或任何其他字符串)替換整個元素?

使用以下表達式:

\[SYS[^]]*\](.+?)\[/SYS\]

並替換為$1 ,請參閱regex101.com上的演示


PHP

 $regex = '~\\[SYS[^]]*\\](.+?)\\[/SYS\\]~'; $string = preg_replace($regex, '$1', $your_original_string); 

有關ideone.com的完整代碼,請參見演示。

您可以這樣替換:

$re = "/\\[\\/?SYS(?:\\s\\d+)?\\]/";
$str = "[SYS 1]Page 1 from 2:[/SYS]";
echo preg_replace($re, "", $str)

暫無
暫無

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

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