[英]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.