Регулярные выражения в ПрайсМатрикс

Что такое регулярные выражения?

Регулярные выражения – это мощный инструмент для работы с текстом, который позволяет осуществлять поиск, замену и обработку текстовой информации.

Регулярные выражения позволяют задавать шаблоны поиска, которые используются для поиска определенных комбинаций символов в тексте. Шаблоны поиска могут содержать специальные символы, такие как метасимволы, которые представляют собой классы символов, квантификаторы, которые определяют количество повторений, и другие операторы, которые позволяют точно настраивать поиск.

Регулярные выражения в ПрайсМатрикс

В ПрайсМатриксе регулярные выражения могут использоваться для работы с файлами Excel и CSV.

Формула для использования регулярных выражений:
=REGEX("/w/W",A)

"/w/W" - это шаблон регулярного выражения

А  - столбец в котором нужно найти нужную подстроку

Примеры использования регулярных выражений в Прайсматриксе:

1) Извлечение данных. Одним из наиболее распространенных применений регулярных выражений является поиск и извлечение данных в прайсе. Например, если вам нужно найти и извлечь все вхождения слова "Картридж" в файле, вы можете использовать следующее регулярное выражение: \bКартридж\b. Это выражение ищет слово "Картридж", которое отделено от других символов пробелами, знаками пунктуации или началом/концом строки.

Формула для извлечения строки:
=REGEX("\\bКартридж\\b",A)

Пример использования формулы:
Задача: в файле примерно такие строки "AirPods 2 (MV7N2) 115", это название товара и цена. Из строки нужно вытащить цены товаров.
Для этой цели применяем формулу:
=REGEX("\\d+$|\\d+\\$$",A)

2) Замена текста. Регулярные выражения могут также использоваться для замены текста. Например, следующее регулярное выражение может быть использовано для замены слова "apple" на "orange" в тексте:

= A.Replace(REGEX("apple",A), "orange")
Replace - это формула для замены текста
REGEX - это формула для поиска текста
А - столбец к которому нужно применить формулу.

Пример использования формулы:
Задача: в файле примерно такие строки "AirPods 2 (MV7N2) 115", это название товара и цена. Из строки нужно вытащить название товаров. Для этого проще сделать замену цены, которая находится в конце строки, на пробел. В результате останется только название товара.
Для этой цели применяем формулу:
= A.Replace(REGEX("\\d+$|\\d+\\$$",A), "")

Шпаргалка регулярных выражений

  • \\d - любой цифровой символ,
  • \\D - любые символы кроме цифр,
  • \\w - любые буквы, цифры или знаку нижнего подчеркивания «_»,
  • \\W -  любой символ, кроме буквы, цифры или знака нижнего подчеркивания «_»,
  • \\s - любой пробельный символ.
  • \\S - любой символ, кроме пробела,
  • - указывает что предыдущий символ или выражение встречается 0 или один раз
  • + - указывает на то что предыдущий символ встречается один и более раз
  • | — или,  ab(c|d) — abc или abd,
  • ^ — начало строки,
  • $ — конец строки,
  • .  — любой символ,
    …… — любое значение содержащее 6 символов,
    ^……$ — значение строго из 6 символов,
  • *  — любое количество одинаковых символов подряд,
  • [a-z] — все буквы латинского алфавита в нижнем регистре,
  • [A-Z] — все буквы латинского алфавита в верхнем регистре,
  • [a-zA-Z] — все буквы латинского алфавита в обоих регистрах,
  • [0-9] — все цифры от 0 до 9,
  • .* — любые значения.
  • \\ - используется для экранирования метасимволов. Если вам нужно, чтобы точка, была всего лишь точкой, а не метасимволом, то перед ней нужно поставить обратный слэш,
  • ^$ - соответствует пустой строке
  • \<...\> - отмечают границы слова. Выражение "\<the\>" соответствует слову "the", и не соответствует словам "them""there""other" и т.п.