Удалить слова по регулярке

Тема в разделе "Решение различных задач по парсингу", создана пользователем Zorro, 22 дек 2012.

  1. Zorro

    Zorro New Member Пользователи

    Регистрация:
    22 дек 2012
    Сообщения:
    17
    Есть спарсенный текст в котором могут хаотически содержаться нежелательные кусочки - майлы, урлы...
    не могу сообразить, как их просто выкинуть из текста.
    признаки например такие
    "@", "www.", ".com", ".net", ....

    Спасибо.
     
    Последнее редактирование: 22 дек 2012
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    используйте в поиск-замена re:здесь-регулярка|на что заменить
    http://forum.sbfactory.ru/showthread.php?t=272 подробнее о ругелярках, конкретные примеры
     
  3. Zorro

    Zorro New Member Пользователи

    Регистрация:
    22 дек 2012
    Сообщения:
    17
    сделал так
    PHP:

    [REPLACE(re:((\S*)(@)(\S*))|)]
    [
    REPLACE(re:((\S*)(http:)(\S*))|)]
    [
    REPLACE(re:((\S*)(www.)(\S*))|)]
    [
    REPLACE(re:((\S*)(.com)(\S*))|)]
    [
    REPLACE(re:((\S*)(.net)(\S*))|)]
    [
    REPLACE(re:((\S*)(.org)(\S*))|)]
       [
    HTMTOTXT:]
       <
    CD_CYCLE_GRAN_1!>
       [/
    HTMTOTXT]
    [/
    REPLACE]
    [/
    REPLACE]
    [/
    REPLACE]
    [/
    REPLACE]
    [/
    REPLACE]
    [/
    REPLACE]
    спасибо, вроде работает

    я так понимаю записать в виде (.com|.net|.org) - не получится?
    и регистронезависимость (i) - то же не употребить?
     
    Последнее редактирование: 23 дек 2012
  4. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    странно что это работает))
    неправильно
    PHP:
    [REPLACE(re:((S*)(.net)(S*))|)]
    [
    REPLACE(re:((S*)(.org)(S*))|)]
       [
    HTMTOTXT:]
       <
    CD_CYCLE_GRAN_1!>
       [/
    HTMTOTXT]
    [/
    REPLACE]
    [/
    REPLACE]
    правильно через разделитель {break}
    PHP:
    [REPLACE(re:((S*)(.net)(S*))|{break}re:((S*)(.org)(S*))|)] [HTMTOTXT:]<CD_CYCLE_GRAN_1!>[/HTMTOTXT] [/REPLACE] [/REPLACE]
    нет, лучше используйте альтернативную регулярку без палочек чтоб

    должно работать
     
    Последнее редактирование: 23 дек 2012
  5. markov34

    markov34 New Member Пользователи

    Регистрация:
    6 авг 2012
    Сообщения:
    6
    Ппытался сделать регулярку для CD, что бы при парсинге сниппетов удалялись урлы. Где то допустил ошибку.

    Код:
    re:([://\w-\.]+)((?:[\w]+\.)[a-zA-Z]+)(([?:/\w])([a-z0-9]+))+|
    CD просто виснет, хотя на сайте Ссылки недоступны для гостей все работает.
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Надо убрать эти регулярки из программы, что на них всех тянет ;).
    Все решается обычной поиск-заменой программы с макросом {skip}
    Ссылки недоступны для гостей
     
  7. markov34

    markov34 New Member Пользователи

    Регистрация:
    6 авг 2012
    Сообщения:
    6
    Как я понял макросом {skip} можно удалить текст ссылки только между какими то тэгами (div, title и т.д.). А как быть если остались куски урлов?
    Например.

    Код:
    pletenie-kosichek-na*Leninskom-prospekte.php
     
  8. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Дочистить, либо корректно применить {skip}
     
  9. markov34

    markov34 New Member Пользователи

    Регистрация:
    6 авг 2012
    Сообщения:
    6
    В ручную это понятно. Дело в том, что сниппеты парсятся уже с такими кусками. Так что корректно применить макрос {skip} не получится.
     
  10. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Несколько поиск-замен использовать. Конкретно то задачу поставьте с примером.
     
  11. nikolas1612

    nikolas1612 Member Пользователи

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    вот этот код и ему подобные -
    Код:
    pletenie-kosichek-na*Leninskom-prospekte.php
    как вариант, удаляются так:
    re:[-\w*]*\.php|
     
    Последнее редактирование: 31 дек 2012

Поделиться этой страницей