0

我有一个功能:

function ColoredQuote($string) {
    $buffer = preg_replace('/>.+/', '<span class=quote>$0</span><br />', $string);
    return $buffer;
}

当只有我想格式化的简单字符串时,它的效果很好。但是我想让这个函数只在带有 > 标记的字符串在一个新行之后并且在它的末尾有第二个新行标记时才起作用。我还想在 > 标记之后防止空格。我正在尝试添加 \n、^ 标记和其他可能有用但它不起作用的东西。

所以模式应该是这样的:

[br]>any text[br]

这是图像板上流行的引用方法

4

2 回答 2

0

好的,我自己做的,所以对于任何会发现它有用的人:

function ColoredQuote($string) {
    $buffer = preg_replace('!\>\S.+!', '<br /><span class=quote>$0</span><br />', $string);
    return $buffer;
    }
于 2013-10-11T11:58:18.297 回答
0

要将所有以>更改您的正则表达式开头的行替换为:

$buffer = preg_replace('/^>.+$/', '<span class=quote>$0</span><br />', $string);

^表示行 $首 表示行尾

于 2013-10-11T08:37:09.233 回答