2013-10-11 45 views
0

我有一个函数:正则表达式和换行模式

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

当有一个简单的字符串,只有我想格式化的伟大工程。但是我想让这个函数只在带有标记的字符串在一个新行之后,并且在它的结尾有第二个新行标记时才起作用。 >标记后,我也想防止空格。我正在尝试添加\ n,^标记以及其他可能有用但不起作用的标记。

所以这个模式应该是这样的:

[br]>any text[br] 

这是流行在imageboards

回答

0

报价方法来替代所有行与>开始改变你的正则表达式来此:

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

^意味着行的开始 $意味着行末

0

好吧,我做到了我自己,这样的人谁就会发现它有用:

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