正则表达式以格式化某些文本行

时间:2009-07-30 22:54:24

标签: php regex formatting

我正在努力改善我的现场个人信息系统,让它看起来更漂亮,感觉更像是电子邮件。我目前添加>在每行回复文本之前,但我还想将字体颜色等格式添加到以“>”开头的行中没有引号。我不确定如何用正则表达式关闭线条。要打开它我假设我应该做以下的事情?

$new_text = preg_replace("\> \is", "<font color=\"grey\">> ", $text);

4 个答案:

答案 0 :(得分:0)

preg_replace("/^(>.*)$/im", "<span style=\"color: red;\">\\1</span>", $reply);

答案 1 :(得分:0)

ereg_replace('^>(.*)', '<span class="quoted">&gt;\\1</span>', $content);

答案 2 :(得分:0)

preg_replace('/(\n>[^\n]*)+/','<span class="reply">$1</span>', $message);

这样的内容会将引用的回复附上你可以设定的样式。

答案 3 :(得分:0)

除了已经发布的好答案之外,您可能希望在将其视为HTML之前转义捕获的文本。通过简单的替换,引用文本中的某些字符(特别是'&lt;','&gt;'和'&amp;')将使您生成的HTML无效。 (我假设它尚未转义,或者您需要匹配“&gt;”而不是“&gt;”。)

为确保替换产生有效的HTML,您可以执行以下操作:

function quote_markup($matches) {
    $quote = htmlspecialchars($matches[1]);
    return "<span style=\"color: red;\">$quote</span>",
}

preg_replace_callback("/^(>.*)$/im", 'quote_markup', $reply);