![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
подсобите регулярным выражением
надо заменить все \n на </p>\n<p> за исключением тех \n, что находятся внутри тэгов [ list] ... \n ... [ /list] (пробелы в тэгах поставлены, чтобы тэги не были обработаны на этом форуме) то есть при парсе bb-кодов меняем все переводы строк на разделение абзацев, за исключением тех переводов, что внутри списков спасибо Это сообщение отредактировал(а) bars80080 - 9.6.2010, 17:56 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
Одним регулярным не обойтись ;)
Добавлено через 1 минуту и 29 секунд bb коды нужно без пробелов бить, а то форум глючит ;) Это сообщение отредактировал(а) ksnk - 9.6.2010, 18:26 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: нет Всего: 29 |
А почему нельзя негативным предпросмотром вперед проверить закрывающийся list?
Где-то так
Добавлено через 1 минуту и 45 секунд упс, понял) -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
SickFxck |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: 1 Всего: 1 |
Я бы советовал использовать нормальный BB-парсер. Например, xBB
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
||||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
ну тогда достаточно заменить первую регулярку на
а так все то-же самое. Заменить теги на плейсхолдеры, поменять и вернуть все взад... Кстати, сама замена делается совсем даже не регулярками ;) -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
SickFxck |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: 1 Всего: 1 |
||||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
там уже всё разобрано, и совершенно не понятно, зачем для частной задачи объёмом в десять строк кода надо загружать 80кБ кода с десятками создаваемых на лету функций. осталось решить всего одну заморочку |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
что-то не катит этот метод:
во-первых, он всё равно запихивает </p><p> внутрь [ list]. так ещё и покушается на другие тэги, делая из [ align] к примеру [ a@@gn] |
|||
|
||||
ksnk |
|
||||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
эти строчки есть? Если они где-то в глубине разнообразных инклюдов, то можно написать так
![]()
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||||
|
|||||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
есть, и так и так проверил, всё равно вставляет </p><p> внутрь [ list] честно говоря, я сразу после первого поста написал альтернативный вариант без регулярок. и он получился настолько краткий, что даже не знаю, стоит ли рыпаться теперь с регулярками
|
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: нет Всего: 140 |
да краткий, но меня пугают вложенные циклы. Ведь если текст очень большой то сколько это времени надо Добавлено через 30 секунд для малых объемов он хорошо) -------------------- Amazing ![]() |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
честно говоря, не видел ни одной статьи даже среди очень объёмных, где было бы больше десяти списков. во-вторых, вложенный цикл в нормальном состоянии считает только одну итерацию. если больше, значит пользователь захотел себе проблем итого, суммарное количество итераций в нормальном состоянии даже для больших текстов - 10. вроде не много |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
bars80080, для больших(>100к) текстов регулярки начинают сильно тормозить, так что цикл - не так и плохо. Вот только маленькие-большие буквы в этих [ LiSt]'ах встречаются?
Это сообщение отредактировал(а) ksnk - 10.6.2010, 15:14 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
нет, я их сам вставляю объём текста - максимум 64к, при больших объёмах он будет резаться Добавлено через 1 минуту и 57 секунд минусы зачем-то поставили. наверное, в моих постах кроется ошибка, настолько очевидная, что её не стоит даже озвучивать |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |