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

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

  1. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    Код:
    re:^\w{2}
     
    kagorec и Stan нравится это.
  2. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Код:
    re:^(\w{2}).*$|$1
    Две первые буквы выдернет из всего.
     
    Stan и xLime нравится это.
  3. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Кто из задающих вопросы не здоровается и не говорит спасибо, будут лететь в бан. Должна быть культура общения, а не хабальное потребительское отношение.
     
  4. Gnom41k

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

    Регистрация:
    20 июл 2015
    Сообщения:
    47
    Доброго времени, помогите вытянуть артикул из строки примерно такого вида
    Контактор модульный (IEK) КМ20-11 AC (MKK10-20-11)
    то есть код товара всегда в конце строки и всегда в скобках но при этом скобки могут быть в тексте несколько раз повторятся
    Есть варианты еще сложнее по ним у меня даже идеи нет кроме как зацепится на начальной проверке на "))" ... в общем такая же задача но артикул нужно получить из такого текста

    Светильник потолочный EUROLAMP LED (СМАРТ ЛАЙТ) 70W 3000K-6500K (LED-SLM-70W-N16(deco))

    чем дальше в лес тем гуще партизаны
    Лампа светодиодная EUROLAMP ЕКО серия "D" MR16 5W GU5.3 4000K 12V (LED-SMD-05534(12)(D))

    то есть алгоритм только такой, с конца до первого вхождения " (" и замена "))" на ")"

    и коль написал то попрошу еще в подсказке более простого но не менее важного для меня решения замены первого определенного символа с конца например на "^"

    Заранее спасибо
     
    Последнее редактирование: 20 сен 2019
  5. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Предполагаю, достаточно того что артикул в конце и без пробелов.
    Выбираем и лишние скобки по краям убираем
    Код:
    re:^.*? ([^\s\t]+)$|$1
    {textstart}(|
    ){textend}|
     
    Gnom41k нравится это.
  6. Stan

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

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    Не работает почему то
     
  7. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Работает, проверено (если вначале нет мусора пробелов\табов\символов).
    [​IMG]

    Более универсальное решение
    Код:
    re:^[^\w]*(\w{2}).*$|$1
    [​IMG]
     
    Gnom41k, Stan и Root нравится это.
  8. Gnom41k

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

    Регистрация:
    20 июл 2015
    Сообщения:
    47
    огроменное спасибо!!!
     
    kagorec нравится это.
  9. Stan

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

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    Здравствуйте.
    Не подскажите, как поменять местами строки в ячейке?
    в ячейке строки
    1
    2
    3
    надо в обратном порядке

    3
    2
    1
    поиск заменой либо регулярками можно такое?
     
  10. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Код:
    [SORT({br}|{br}{dupignore}{inverse})]
    1
    2
    3
    [/SORT]
    Выведет в обратном порядке
     
    xLime нравится это.
  11. Stan

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

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    имеется ввиду, что есть готовый файл csv , и в ячейках нужно такое сделать
    в ячейке уже есть
    1
    2
    3
     
  12. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Средствами екселя разве нельзя?
     
  13. Stan

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

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    Здравствуйте.
    Есть список слов - городов, и нужно чтобы в строках удалить всё лишнее и оставить только названия городов.
    Т.е.
    такие строки
    Москва ул. Такая то д.34/63
    г. Москва ул. Такая то д.34/63
    Рязань слово слово
    слово слово Рязань слово слово

    нужно все почистить и оставить только города
    Москва
    Москва
    Рязань
    Рязань
    и т.д. городов много , список городов. не два города как в примере
     
  14. Root

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

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

    Код:
    [EXTRACTWORD][WORDS]
    Москва
    Рязань
    [/WORDS]Москва, Кремль[/EXTRACTWORD]
    Если нужно, постараюсь доработать.
     
    Stan и kagorec нравится это.
  15. stasiss

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

    Регистрация:
    21 ноя 2016
    Сообщения:
    68
    Добрый день.
    Подскажите пожалуйста, возможно ли поднять регистр первой буквы в случае если слов несколько?
    Буквы как русские так и латинские встречаются.
     
  16. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    `Здравствуйте.
    Для этого есть отдельный макрос [REGUPFIRST]<CD_GRAN_1!>[/REGUPFIRST]
     
    stasiss нравится это.
  17. Root

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

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

    [REGUPFIRST][WORDMODE]Один два три[/REGUPFIRST]
     
    xLime и stasiss нравится это.
  18. stasiss

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

    Регистрация:
    21 ноя 2016
    Сообщения:
    68
    Почему-то не работает. Я наверное не правильно написал, подразумевал только одну первую букву, в первом слове, а поднимаются в каждом.

    Все разобрался, нужно читать аннотацию было к макросу, там все написано. [WORDMODE] - для каждого слова в тексте.

    Спасибо, все работает!
     
  19. Stan

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

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    А кириллица не работает, только латиница берется первые два
     
  20. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Используйте макрос шаблона вывода [COPY].
     
    Stan нравится это.

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