![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| TwiSteR |
|
|||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
Приветствую уважаемые !
Есть функция на пхп с кучей регулярок
в регулярках вообщем не бум-бум. --------------------
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Что-то я вопроса не заметил.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| TwiSteR |
|
|||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
Рад приветствовать тебя korob2001!
Непонятно вот что к примеру // Quickly remove BBcode. $entry = preg_replace("/\[\/?[a-zA-Z*]+[^\]]*\]/", " ", $entry); Удалить все BBcode из текста так вот тут суть в том что будут искаться и удалятся квадратные скобки и всё что в них Как это сделать на перле, вообще не понимаю P.S. А причём тут раздел пхп, мне на перле это надо (хоть это из пхп) Врядли думаю что мне там помогут. --------------------
|
|||
|
||||
| Kiber_rat |
|
||||
![]() MACMANIAC ![]() ![]() Профиль Группа: Участник Сообщений: 276 Регистрация: 18.4.2002 Где: Ashdod, Israel Репутация: 7 Всего: 9 |
Если это все perl совместимые регулярные выражения (что видно из названий функций), то перевести это в perl очень просто
-------------------- Best regards! @..@_____Ku6ep =*=______\______KPbIC
|
||||
|
|||||
| TwiSteR |
|
|||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
Kiber_rat
Спасибо ! Только вот пробую так
[mm] Долбит, а вот [ex] уже нет Да и по поводу функции пхпшной strip_tags , она долбит все хтмп теги. Что-то подобное можно организовать ? --------------------
|
|||
|
||||
| Sadok |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
TwiSteR
ну, так откуда sub возмет этот [ex], если ты передаешь ей только [mm] (my $entry = $_[0];)? |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Ошибка в том, что ты не указал модификатор g, т.е. шаблон находит первое совпадение и останавливаеся. Добавь g там, где нужен глобальный поиск всех вхождений искомой подстроки.
Я тут добавил код удаляющий лишние пробелы, но это уже сам смотри, если не нужен то удали эти три строки. Это сообщение отредактировал(а) korob2001 - 7.2.2006, 12:45 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| TwiSteR |
|
|||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
Во спасибо ребята !
А вот как быть с strip_tags в пхп она удаляет хтмл теги, что скажите ? --------------------
|
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Думаю примерно так:
вот так должна выглядеть твоя подпрограмма:
Но могут возникнуть трудности, так как у HTML нет жёсткой структуры, т.е. один тег может быть расположен на нескольких строках. Для этого нужно соединить весь текст в одну строку а затем применить к нему строку, которую я указал выше. Это сообщение отредактировал(а) korob2001 - 7.2.2006, 13:57 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| TwiSteR |
|
|||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
korob2001,Kiber_rat
Спасибо за реальную помощь ! --------------------
|
|||
|
||||
| Kiber_rat |
|
||||
![]() MACMANIAC ![]() ![]() Профиль Группа: Участник Сообщений: 276 Регистрация: 18.4.2002 Где: Ashdod, Israel Репутация: 7 Всего: 9 |
korob2001 Я предпочитаю удалять тэги так:
-------------------- Best regards! @..@_____Ku6ep =*=______\______KPbIC
|
||||
|
|||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
А в чём отличие?
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Kiber_rat |
|
|||
![]() MACMANIAC ![]() ![]() Профиль Группа: Участник Сообщений: 276 Регистрация: 18.4.2002 Где: Ashdod, Israel Репутация: 7 Всего: 9 |
Теоретически в том, что мой вариант работает быстрее
-------------------- Best regards! @..@_____Ku6ep =*=______\______KPbIC
|
|||
|
||||
| korob2001 |
|
||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Практически, мой пример работает на треть быстрее. С моим вариантом:
С твоим:
Вот такие цифры получил я: Первый запуск:
Повторный запуск:
Третий запуск:
Для теста прицепляю два скрипта, с обеими вариантами и html файл, на котором я тестил.
Я не читал её, хотя много слышал о ней. Но с другой стороны, эта книга уже порядочно устарела. Это сообщение отредактировал(а) korob2001 - 12.2.2006, 21:15 Присоединённый файл ( Кол-во скачиваний: 1 )
parser.zip 6,99 Kb-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||||||||||
|
|||||||||||||||
| nitr |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
Ну а вот последняя модификация быстрого удаления
"?" - нужен по-любому для "ленивого" поиска, что быстрее. С инвертированным классом "[^>]" сложней, при наличии внутренних комментариев в тегах, но будет вернее
Теперь тестируйте... Это сообщение отредактировал(а) nitr - 13.2.2006, 03:13 |
||||
|
|||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |