Как добавить HTML-разрывы перед буквенным списком • с помощью регулярных выражений? - PullRequest
0 голосов
/ 12 января 2011

У меня странная ситуация при извлечении информации из базы данных для отображения веб-страницы.

Администратор копирует и вставляет информацию в поле mediumtext latin1_swedish_ci (столбец описания).

Там• являются маркерами в данных, а не <li>.

Я уже делаю небольшое форматирование перед отображением в Perl с помощью:

my $string = $Description;
my @sentences = split(/(?:(?<=\.|\!|\?)(?<!Mr\.|Dr\.)(?<!U\.S\.A\.)\s+(?=[A-Z]))/, $string);

for (@sentences) {
#TRIED THIS $_ =~ s/•/<br />•/g;
print qq~ $_ <br /><br />~;
}

, который довольно хорошо работает для создания новых строк после периодов.Жалоб пока нет.

Тем не менее, все "маркированные" списки запускаются вместе, как List•foo•bar•nonewline.

Очевидно, я бы хотел:

List

•foo

•bar

•nonewline

Этовозможный?Уничтожает ли это старое правило «мусор в мусоре»?

Я бы просто хотел начать новую строку перед пулями.В этом поле нет HTML, и я не могу контролировать этот аспект.Я могу контролировать только то, как он отображается на веб-странице, на которой, очевидно, HTML находится в моем распоряжении.

Будет ли HTML :: FormatText здесь какой-либо помощи?

Iоцените подробные примеры, поскольку я очень плохо знаком с этим.Забегая вперёд, что, если она время от времени вставляет разные типы пуль?

1 Ответ

2 голосов
/ 12 января 2011
s/•/<br />•/g

Внимательно ли вы посмотрели на сообщение об ошибке, полученное при попытке этого?Если вы используете косую черту в качестве разделителя в s ///, то любые косые черты в шаблоне или замене должны быть экранированы.

s/•/<br \/>•/g

Но чтобы сделать его более читаемым, используйте другие разделители.

s|•|<br />•|g
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...