Регулярное выражение для форматирования определенных строк текста - PullRequest
0 голосов
/ 31 июля 2009

Я пытаюсь улучшить свою личную систему обмена сообщениями, сделав ее более приятной и похожей на электронную почту. В настоящее время я добавляю> перед каждой строкой ответного текста, но я также хотел бы добавить форматирование, такое как цвет шрифта, в строки, начинающиеся с «>» без кавычек. Я не уверен, как я мог бы закрыть строки с помощью регулярного выражения. Чтобы открыть его, я предполагаю, что должен сделать что-то вроде следующего?

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

Ответы [ 4 ]

0 голосов
/ 31 июля 2009

В дополнение к уже опубликованным хорошим ответам, вы можете захотеть избежать захваченного текста, прежде чем рассматривать его как HTML. При простой замене некоторые символы в цитируемом тексте (в частности, «<», «>» и «&») сделают сгенерированный HTML недействительным. (Я предполагаю, что это еще не сбежало, или вам нужно будет соответствовать ">" вместо ">".)

Чтобы убедиться, что замена приводит к действительному HTML, вы можете сделать что-то вроде этого:

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

preg_replace_callback("/^(>.*)$/im", 'quote_markup', $reply);
0 голосов
/ 31 июля 2009
ereg_replace('^>(.*)', '<span class="quoted">&gt;\\1</span>', $content);
0 голосов
/ 31 июля 2009
preg_replace('/(\n>[^\n]*)+/','<span class="reply">$1</span>', $message);

Что-то в этом роде будет заключать в кавычки то, что вы можете придумать.

0 голосов
/ 31 июля 2009
preg_replace("/^(>.*)$/im", "<span style=\"color: red;\">\\1</span>", $reply);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...