preg_replace函数从字符串“亚历克”报价和颜色标记

问题描述 投票:1回答:1

我有一个像下面的字符串,我想解析报价标签标签<blockquote>"Content</blockquote>,想用空字符串替换的颜色标记。

输入:

[quote=&quot;De real one ROOFVISSER&quot;:g3o3w038][color=green:g3o3w038]Thnxxx voor de oppeppende taal Egon, maar het zal niet veel helpen volgende week repetitieweek en samen wonen is net zo erg als een zeurende moeder waarvan je alleen maar mag gaan leren totdat je er koppijn van krijgt.......
[/color:g3o3w038][/quote:g3o3w038]

输出:

<blockquote>Thnxxx voor de oppeppende taal Egon, maar het zal niet veel helpen volgende week repetitieweek en samen wonen is net zo erg als een zeurende moeder waarvan je alleen maar mag gaan leren totdat je er koppijn van krijgt.......</blockquote>

我已经尝试下面的东西和StackOverflow的答案为好,

Re-enabling Quotes in phpBB Color Code

preg_match_all('/\[(b|i|size|color|center|quote|url|img)=?(.*?)\](.+?)\[\/\1\]/', $input_lines, $output_array);

但它返回空白输出阵列。

请给我建议正确preg_replace模式来过滤掉的内容。

php regex preg-replace phpbb
1个回答
0
投票

这可能是最容易使用两个regexs,一个删除[color...]标签和一个以取代[quote...]<blockquote>标签来完成:

$string = '[quote=&quot;De real one ROOFVISSER&quot;:g3o3w038][color=green:g3o3w038]Thnxxx voor de oppeppende taal Egon, maar het zal niet veel helpen volgende week repetitieweek en samen wonen is net zo erg als een zeurende moeder waarvan je alleen maar mag gaan leren totdat je er koppijn van krijgt.......
[/color:g3o3w038][/quote:g3o3w038]';
echo preg_replace(array('#\[/?color[^]]*]#', '#\[(/?)quote[^]]*]#'), array('', '<$1blockquote>'), $string);

输出:

<blockquote>Thnxxx voor de oppeppende taal Egon, maar het zal niet veel helpen volgende week repetitieweek en samen wonen is net zo erg als een zeurende moeder waarvan je alleen maar mag gaan leren totdat je er koppijn van krijgt....... </blockquote>

Demo on 3v4l.org

© www.soinside.com 2019 - 2024. All rights reserved.