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

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

  1. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    В дальнейшем извлекайте данные из повторяющихся границ парсинга не поиск-заменой, а с помощью обычных границ парсинга, заданных внутри повторяющейся

    Ссылки недоступны для гостей
     
    masrub нравится это.
  2. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Предполагаю что обойтись тут достаточно поиск-заменой, пример.
    Код:
    ФИО[CSVCS]<CD_GRAN_5!>[CSVCS][REPLACE(<CD_GRAN_5!>|)]<CD_GRAN_6!>[/REPLACE][CSVCS]
     
  3. rusalex

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

    Регистрация:
    22 мар 2018
    Сообщения:
    133
    Город:
    Kiev
    Здравствуйте.
    С помощью регулярных выражений можно выбрать все четные и отдельно все нечетные цифры. или может есть какой-то макрос?
    Или подскажите как строки начинающиеся на нечетные цифры отделить от четных?

    Заранее спасибо.
     
    Последнее редактирование: 9 апр 2020
  4. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    Добрый день.

    Наверное будет что-то в этом роде. Нужно проверять и редактировать с учетом исходных данных.
    Код:
    [LINEMODE]re:(^\d*(0{sep}2{sep}4{sep}6{sep}8)\s.+)|@@@$&@@@
    [LINEMODE]re:(^\d*(1{sep}3{sep}5{sep}7{sep}9)\s.+)|###$&###
    2020-04-10 14-04-27.jpg

    Дальше использовать @@@{get}@@@ или ###{get}###, чтобы выбрать данные.
    2020-04-10 14-08-19.jpg

    ~~~~~

    Признак четности:
    Ссылки недоступны для гостей
     
    Последнее редактирование: 10 апр 2020
    rusalex и kagorec нравится это.
  5. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    В дополнительных настройках границы в поле поиск-замена
    Код:
    re:([02468]+)|~#$1#~
    re:([13579]+)|~@$1@~
    Потом шаблоне вывода через макрос REPLACE гетом выдергивайте нужное
     
    xLime, rusalex и inotoxic нравится это.
  6. sinoda

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

    Регистрация:
    10 фев 2012
    Сообщения:
    55
    Город:
    Москва
    Братцы, подскажите как решить:
    есть поле:
    200(пробел)rub.
    и
    200(пробел)rubles

    задача - перевести в доллары...

    регуляркой парсим из текста этот участок и заменяем

    re:([0-9]+) rub+|$1 usd

    т.е. находим любые числа с последующим пробелом и появлением словосочитания rub
    и заменяем все встречающиеся числа с послеующим набором символов "(пробел)rub" на теже числа но с заменой rub на usd
    задача $1 перевести в доллары как бы разделить на курс( условно $1/70)
    хочется чтобы сработало это
    re:([0-9]+) rub+|$1/70 usd
    но увы регулярки не работают с математическими выражениями
    как 200 разделить на 70 ? Что-то нагуглилось про RegEx но ума не приложу как связать, может PHP как то привязать ?
     
  7. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    Используйте макрос [Ссылки недоступны для гостей]. Сокращение "usd" просто добавьте в шаблоне вывода.
     
  8. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Поможет макрос TOPRICE (найти в справке через поиск), вы будете приятно удивлены насколько просто.
    Тоесть макросу достаточно скормить цифру с текстом и в итоге соответственно формуле получится результат чистой цифрой.
     
    Root и xLime нравится это.
  9. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Добрый день.
    Может кто подскажет как удалить цифры в конце строк, если они есть. Начальные строки я уже обработал и удалил все не нужное тегами skip, получаю вот такие результаты и думаю их нужно обрабатывать регулярными выражениями?
    Батут д/прыжков прозрачн джамп-о-лин/48052
    Бассейн "БИРЮЗА" 203/51см/45121
    Нарукавник "ЛЮКС" 23/15см/4467
    или без цифр
    Круг на шею для купания малышей Flipper
    Спасибо.
     
  10. Mind

    Mind Well-Known Member Пользователи

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    Наверняка можно короче, но как вариант костыль Ссылки недоступны для гостей
     
  11. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Спасибо, но к сожалению не подходит, подправил ручками)
     
  12. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Код:
    re:/[\d]+$|/
    или
    re: [\d\с\м\/]+$|/
     
    xLime нравится это.
  13. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Код:
    re:^.*?\.[a-zа-я]{2,7}/|/
    ----------------
    Код:
    re:^[htps\:]*[/]*([^\W]+)\.([a-zа-я]{2,})|$1.$2
    re:/.*$|
     
    xLime и gans нравится это.
  14. kadishev1997

    kadishev1997 Well-Known Member Пользователи

    Регистрация:
    27 мар 2019
    Сообщения:
    310
    Не могу сообразить, как сделать подобное. Есть условный код:

    Код:
    {Наименование:001},{Наименование:002},{Наименование:003},{Наименование:004},{Наименование:005},
    Нужно найти N-ый символ символ "}" (закрывающая фигурная скобка, например третий символ) и удалить остальной текст поле нее, чтобы получилось

    Код:
    {Наименование:001},{Наименование:002},{Наименование:003}
    Как подобное реализовать?
     
  15. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Код:
    {skip}}{skip}}{skip}}|
    {get}|{prevskip(1)}}{prevskip(2)}}{prevskip(3)}}

    Ссылки недоступны для гостей
     
    kadishev1997 нравится это.
  16. ITz

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

    Регистрация:
    31 янв 2020
    Сообщения:
    43
    Город:
    Third Rome
    подскажите,
    как использовать регулярные выражения с [VALUE]
    конкретно в повторяющихся границах в цикле мне нужно вытащить из урлов только полное имя файла с расширением, пробовал в окне поиск замены с re: не получается ничего, хотя в тесте на regexr.com все работает (?<=\/)[^\/\?#]+(?=[^\/]*$)
     
    Последнее редактирование: 25 июл 2020
  17. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Пример ссылки не помешало бы
     
    Root нравится это.
  18. ITz

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

    Регистрация:
    31 янв 2020
    Сообщения:
    43
    Город:
    Third Rome
    пожалуйста:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 10 постов.**
    и в таком же роде)
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 10 постов.**
    хотелось бы подобрать универсальное re: решение, на которое не будет влиять кол-во слэшей / а также прошу помочь с ещё одной формулой, которая будет выводить только имя файла без расширения.
     
  19. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Код:
    /{get}|{get}
    Ссылки недоступны для гостей
     
    ITz нравится это.
  20. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Код:
    re:^.*/|
    Код:
    re:^.*/|
    re:\.[^\.]{2,7}$|
     
    ITz, kadishev1997 и Root нравится это.

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