Содержание
Что такое регулярные выражения?
Регулярные выражения – это мощный инструмент для работы с текстом, который позволяет осуществлять поиск, замену и обработку текстовой информации.
Регулярные выражения позволяют задавать шаблоны поиска, которые используются для поиска определенных комбинаций символов в тексте. Шаблоны поиска могут содержать специальные символы, такие как метасимволы, которые представляют собой классы символов, квантификаторы, которые определяют количество повторений, и другие операторы, которые позволяют точно настраивать поиск.
Регулярные выражения в ПрайсМатрикс
В ПрайсМатриксе регулярные выражения могут использоваться для работы с файлами 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" и т.п.