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

Discussion in 'Решение различных задач по парсингу' started by kagorec, Mar 19, 2012.

  1. Root

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

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

    Ссылки недоступны для гостей
     
    masrub likes this.
  2. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Предполагаю что обойтись тут достаточно поиск-заменой, пример.
    Code:
    ФИО[CSVCS]<CD_GRAN_5!>[CSVCS][REPLACE(<CD_GRAN_5!>|)]<CD_GRAN_6!>[/REPLACE][CSVCS]
     
  3. rusalex

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

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

    Заранее спасибо.
     
    Last edited: Apr 9, 2020
  4. xLime

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

    Joined:
    Sep 4, 2017
    Messages:
    407
    Добрый день.

    Наверное будет что-то в этом роде. Нужно проверять и редактировать с учетом исходных данных.
    Code:
    [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

    ~~~~~

    Признак четности:
    Ссылки недоступны для гостей
     
    Last edited: Apr 10, 2020
    rusalex and kagorec like this.
  5. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    В дополнительных настройках границы в поле поиск-замена
    Code:
    re:([02468]+)|~#$1#~
    re:([13579]+)|~@$1@~
    Потом шаблоне вывода через макрос REPLACE гетом выдергивайте нужное
     
    xLime, rusalex and inotoxic like this.
  6. sinoda

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

    Joined:
    Feb 10, 2012
    Messages:
    60
    Город:
    Москва
    Братцы, подскажите как решить:
    есть поле:
    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 Супер Модератор Модератор

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

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Поможет макрос TOPRICE (найти в справке через поиск), вы будете приятно удивлены насколько просто.
    Тоесть макросу достаточно скормить цифру с текстом и в итоге соответственно формуле получится результат чистой цифрой.
     
    Root and xLime like this.
  9. vladimir4000

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

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

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

    Joined:
    Nov 8, 2016
    Messages:
    192
    Наверняка можно короче, но как вариант костыль Ссылки недоступны для гостей
     
  11. vladimir4000

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

    Joined:
    Aug 25, 2017
    Messages:
    119
    Спасибо, но к сожалению не подходит, подправил ручками)
     
  12. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Code:
    re:/[\d]+$|/
    или
    re: [\d\с\м\/]+$|/
     
    xLime likes this.
  13. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Code:
    re:^.*?\.[a-zа-я]{2,7}/|/
    ----------------
    Code:
    re:^[htps\:]*[/]*([^\W]+)\.([a-zа-я]{2,})|$1.$2
    re:/.*$|
     
    xLime and gans like this.
  14. kadishev1997

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

    Joined:
    Mar 27, 2019
    Messages:
    310
    Не могу сообразить, как сделать подобное. Есть условный код:

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

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

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

    Joined:
    Mar 10, 2010
    Messages:
    14,818
    Город:
    Барнаул
    Code:
    {skip}}{skip}}{skip}}|
    {get}|{prevskip(1)}}{prevskip(2)}}{prevskip(3)}}

    Ссылки недоступны для гостей
     
    kadishev1997 likes this.
  16. ITz

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

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

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Пример ссылки не помешало бы
     
    Root likes this.
  18. ITz

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

    Joined:
    Jan 31, 2020
    Messages:
    44
    Город:
    Third Rome
    пожалуйста:
    Hidden Content:
    **Hidden Content: To see this hidden content your post count must be 10 or greater.**
    и в таком же роде)
    Hidden Content:
    **Hidden Content: To see this hidden content your post count must be 10 or greater.**
    хотелось бы подобрать универсальное re: решение, на которое не будет влиять кол-во слэшей / а также прошу помочь с ещё одной формулой, которая будет выводить только имя файла без расширения.
     
  19. Root

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

    Joined:
    Mar 10, 2010
    Messages:
    14,818
    Город:
    Барнаул
    Code:
    /{get}|{get}
    Ссылки недоступны для гостей
     
    ITz likes this.
  20. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Code:
    re:^.*/|
    Code:
    re:^.*/|
    re:\.[^\.]{2,7}$|
     
    ITz, kadishev1997 and Root like this.

Share This Page