![]() |
|
Модераторы: ginnie |
![]()
|
|
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
Суть проблемы:
есть такой текст: test1 test2 <pre> test3 test4 </pre> test5 test6 <pre> test7 test8 </pre> test9 test10 Нужно чтобы в конце строки стояли <br>, но только в тех случаях, когда этот текст не помещен между <pre></pre>. Объединяю строки в одну переменную через join("<br>", @input). Теперь нужно удалить <br> между <pre></pre>. Делаю s/(?<=.*?<pre>)<br>(?=.*?<\/pre>)//sg. Но перл поддерживает позитивный просмотр назад только с "fixed-regexp", т.е. никаких ".*?" при "(?<=". Как быть? Может есть другой вариант? Это сообщение отредактировал(а) alezzz - 19.1.2011, 20:33 |
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 2 Всего: 17 |
s!<pre>(.*?)</pre>!"<pre>".cut($1)."</pre>"!ge
sub cut{ my $f = shift; $f =~ s/<br>//g; return $f; } Специально для тех, кто хотел это сделать именно регуляркой |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
То что надо.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |