【发布时间】:2019-02-06 07:43:50
【问题描述】:
我有一个如下所示的字符串,我想将 quote 标签 标签解析为 <blockquote>"Content</blockquote>,并希望将 color 标签 替换为空字符串。 p>
输入:
[quote="De real one ROOFVISSER":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 模式以过滤掉内容。
【问题讨论】:
-
试试
preg_replace_callback('~\[quote(?:=[^]]*)?](.*?)\[/quote(?::\w+)?]~si', function ($m) { return '<bloquote>' . preg_replace('~\[color(?:=[^]]*)?](.*?)\[/color(?::\w+)?]~si', '$1', $m[1]) . '</bloquote>'; }, $s)(demo)。
标签: php regex preg-replace phpbb