Regexp - шпаргалка по регулярным выражениям

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

  1. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Какой символ после артикула стоит? Код нужен!
     
  2. SepScope

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

    Регистрация:
    25 апр 2010
    Сообщения:
    11
    Адрес:
    Москва
    Всех с наступающим!
    Возникла проблема..
    Есть код, в коде несколько картинок.
    Код:
    <img src="http://site,com/image1.jpg">
    blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla
    <img src="http://site,com/image2.jpg">
    blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla
    <img src="http://site,com/image1.jpg">
    Как 1-е изображение отбить с пмощью regexp по левому краю, что бы получилось вот так?
    Код:
    <img class="alignleft" src="http://site,com/image1.jpg">
    blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla
    <img src="http://site,com/image2.jpg">
    blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla
    <img src="http://site,com/image1.jpg">
     
  3. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Код:
    <img |<img class="alignleft" 
     
  4. SepScope

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

    Регистрация:
    25 апр 2010
    Сообщения:
    11
    Адрес:
    Москва
    Не катит. Мне это нужно сделать НЕ в КД а при постобработке контента. Потому и спросил про регулярки.
    И, кстати, даже в КД ваш вариант не сработает, ибо надо ТОЛЬКО первое вхождение.
    У остальных изображений все должно остаться без отбивки
     
  5. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.433
    Адрес:
    Latvia
    Регулярное выражение на первую картинку независимо от символов спереди есть/нету.
    Код:
    re:^(.*?)<img[^<>]+src="([^<>"]+)"[^<>]*>|$1<img class="alignleft" src="$2" />
     
    Kreol и Root нравится это.
  6. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Виноват, не учел!

    Если надо! Вот так будет обрабатывать только первое вхождение:
    <img |<img class="alignleft"[ONCE]
     
    SepScope, kagorec и Kreol нравится это.
  7. SepScope

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

    Регистрация:
    25 апр 2010
    Сообщения:
    11
    Адрес:
    Москва
    Вах! Вот спасибо! Заработало! (с)
     
    Root и kagorec нравится это.
  8. jozess

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

    Регистрация:
    19 дек 2010
    Сообщения:
    122
    Добрый день. Воспользовался примером выше для поднятия регистра первой буквы после точек. Использую FINAL_REPLACE

    Код:
    re:([.;?]\s+)([а-я])|$1 [REGUPFIRST]$2[/REGUPFIRST]
    - не поднимает регистр буквы.

    В настройках стоит gsr-imx . У кого нибудь работает данное выражение?
     
  9. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Здравствуйте.
    Вы забываете что есть очередность выполнения макросов.
    REGUPFIRST намного раньше обрабатывается чем самый последний FINAL_REPLACE
    Переделайте поиск / замену для границы и в ней это применяйте
     
    jozess нравится это.
  10. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    2017-01-02_22-06-43.png
     
    jozess и kagorec нравится это.
  11. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.433
    Адрес:
    Latvia
    Предлогаю такой вариант
    Код:
    re:([.;?]+)[\s\t\r\n]*([а-я])|$1 [REGUPFIRST]$2[/REGUPFIRST]
    п.с. это лишь предположения, поскольку пример страницы или кода не предоставили.:)

    [​IMG]
     
    Последнее редактирование: 2 янв 2017
    jozess нравится это.
  12. jozess

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

    Регистрация:
    19 дек 2010
    Сообщения:
    122
    Спасибо все ответившим))) Тут еще один вопрос, уже бьюсь целый час, безрезультатно.

    Код:
    Так даааааааааа, нееееееет необыкновенный урррррааа.  бессердечный оооооо нет, ввести, восстановить, ууууух. 
    Исправить более 3-х повторяющихся символов, на 1. Заранее спасибо.
    -----------------------
    Теги для поиска: Регулярное выражение поиск повторяющихся букв, повторяющиеся буквы, одинаковые буквы, повторяющиеся символы, буквы подряд, символы подряд, символов подряд.
     
  13. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    помоему такой нету
    просто введите кучу поиск замен
    Код:
    re:(а+)|а
    re:(б+)|б
    и т.д.
     
    jozess и Root нравится это.
  14. lion

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

    Регистрация:
    19 янв 2013
    Сообщения:
    28
    Гуру регулярок, подскажите пожалуйста, как в сканере сайта задать регулярное выражение для ссылок вида
    "Ссылки недоступны для гостей товара"
     
  15. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Код:
    re:^http:\/\/site\.com\/\d+\/.*?$
     
    lion и Root нравится это.
  16. Stan

    Stan Active Member Пользователи

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    есть такие строки
    6 дней 19 часов назад
    2 месяца 5 дней назад
    1 год 5 месяцев
    и т.д.
    как сделать ( с помощью регулярок) числа из таких строк чтобы можно потом в экселе их по порядку фильтровать.

    т.е. 1 год 5 месяцев это больше чем 6 дней и 19 часов и т.д.
     
  17. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    вам надо скорее всего не регулярки, а преобразование данных в единый формат, например макросом [CD_UNIXTIME] и на основе его уже дальше пробовать
     
    Stan нравится это.
  18. faqbill

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

    Регистрация:
    3 янв 2011
    Сообщения:
    53
    Здравствуйте. Ребята помогите составить регулярку, как удалить все символы от начало строки до первого символа ( в моем случае запятая) ?

    P.S. Может кому то пригодится, тут на форуме было где то, повторюсь
    Код:
    re:\s*&.+| 
    Удаляет все после определенного символа, в нашем случае &
     
  19. Stan

    Stan Active Member Пользователи

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    Здравствуйте.

    Нужно сопоставить строки которые ниже

    $$<p>Сезон:</p>$$
    $$<p>Размер:</p>$$
    $$<p>Пар в ящике:</p>$$

    %%<p>Демисезонная обувь</p>%%
    %%<p>25-30</p>%%
    %%<p>12</p>%%
    %%<p>6 пар</p>%%


    нужно получить такое -
    Сезон:Демисезонная обувь
    Размер:25-30

    $$<p>Сезон:</p>$$%%<p>Демисезонная обувь</p>%% и тд
     
    Последнее редактирование: 30 янв 2017
  20. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666

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