【问题标题】:preg_replace for "phpbb" quote and color tag from stringpreg_replace 用于字符串中的“phpbb”报价和颜色标签
【发布时间】: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 '&lt;bloquote&gt;' . preg_replace('~\[color(?:=[^]]*)?](.*?)\[/color(?::\w+)?]~si', '$1', $m[1]) . '&lt;/bloquote&gt;'; }, $s) (demo)。

标签: php regex preg-replace phpbb


【解决方案1】:

这可能是使用两个正则表达式最容易完成的,一个删除[color...] 标签,一个用&lt;blockquote&gt; 替换[quote...] 标签:

$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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多