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

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

  1. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.125
    Город:
    Riga
    Код:
    re:>[\s\t\r\n]*<|>{br2}<
     
    sinoda нравится это.
  2. sinoda

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

    Регистрация:
    10 фев 2012
    Сообщения:
    24
    Город:
    Москва
    Благодарю Вас Уважаемый Кagorec !!!
    Спасибо Сергею за программу !!!
     
    Root нравится это.
  3. Maxxx

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

    Регистрация:
    30 май 2020
    Сообщения:
    110
    Здравствуйте, товарищи. Подскажите, что-то не могу сообразить ,как составить регулярное выражение, чтобы оно в поиске/замене в блоке кода брало только одну фразу-формулу.

    <p>Methyl (2R)-(2-chlorophenyl)[(2S)-(2-chlorophenyl)[6,7-dihydrothieno[3,2-c]pyridin-5(4H)-yl]acetyloxy]acetate ;</p>

    <p>CAS # 1421283-60-4 ;</p>

    <p>C24H21Cl2NO4S ;</p>

    <p>Exact Mass: 489.0568 ;</p>

    <p>MW: 490.40 ;</p>


    Взять по правилу такому, что строка начинается с <p>C(две цифры)(и тут сколько-то символов до пробела, их разное кол-во на разных страницах) .
    И еще перед формулой не всегда стоит тег <p>, бывает и просто перенос строки. Вот так:
    <p>CAS # 855661-74-4 (base) ;</p>

    C21H25ClFN3O4 ;
    <p>Mol. Wt.: 437.89 ;</p>


    Эта строка всегда в разных местах, так что по пропуску тегов <p> не получится, поэтому думаю только регулярками. Но вот синтаксис никак не подберу..
     
    Последнее редактирование: 9 апр 2021
  4. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    378
    Доброго времени.

    Наверное что-то вроде этого:
    Код:
    re:([<p>]*C\d{2}.*?\s;[</p>]*)|@@@$1@@@
    @@@{get}@@@|{get}
    screen-regexp-post-54644.jpg
     
    kagorec и Maxxx нравится это.
  5. Maxxx

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

    Регистрация:
    30 май 2020
    Сообщения:
    110
    Да, оно, спасибо огромное!
     
  6. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.125
    Город:
    Riga
    Код:
    re:[^A-Za-z\d]{1}C([\d]{2}[^\s\t\r\n\;\:\,\.\<]+)|~@C$1@~
    ~@{get}@~|{get}
     
    xLime и Maxxx нравится это.
  7. Maxxx

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

    Регистрация:
    30 май 2020
    Сообщения:
    110
    Это шедевр!) Скажите, может есть какой-то сервис, который выстраивает рег выражение автоматом? (не regexr.com) . В этом невозможно разобраться))
     
  8. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.125
    Город:
    Riga
    Для парсинга хватает обычно базовых знаний (регулярных выражений).
     
    Maxxx нравится это.
  9. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.636
    Это всегда так для всех. Приходит с годами и опытом. Жаль что не всегда оценивается по достоинству(
     
    kagorec и Maxxx нравится это.
  10. Constantine

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

    Регистрация:
    8 ноя 2018
    Сообщения:
    24
    Добрый день. Подскажите, пожалуйста, регулярное выражение, которым можно оставить только те строки, в которых количество символов менее 11?
     

    Вложения:

  11. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    378
    Здравствуйте.
    По правилам хорошего тона следует текст на изображениях дублировать текстом.

    Попробуйте следующие правила:
    Код:
    re:\w{12,}|
    re:(\r\n)+|{br}
    
     
    Root нравится это.
  12. Constantine

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

    Регистрация:
    8 ноя 2018
    Сообщения:
    24
    Принял, прошу прощения.

    Сработало, спасибо большое!
     
    Root нравится это.
  13. Grushe

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

    Регистрация:
    10 апр 2014
    Сообщения:
    42
    Добрый день!
    Подскажите, как удалить с помощью регулярки в конце строки тег <br>?
    Как удалить в начале у меня получается re:(^\<br\>)|
    А вот как в конце не получается.
     
  14. Root

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

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

    Код:
    [LINEMODE]<br>{textend}|
     

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