Правила замены текста
Правила замены текста позволяют очищать и нормализовать данные в ячейках или тегах до того, как они попадут в маппинг полей и правила извлечения. Это первый этап обработки данных. С помощью замены можно удалять лишние символы, исправлять опечатки, приводить текст к единому формату, заменять сокращения на полные названия и многое другое. В зависимости от типа файла в настройках будет либо номер столбца, для csv, xls\xlsx файлов, либо xpath\json path выражения для остальных форматов. общая логика неизменна.

Обратите внимание
В примерах с регулярными выражениями типа Паттерн = r'^[A-Za-z]+-\d+$' само выражение, которое нужно вводить в форму располагается между двумя одинарными кавычками, то есть ^[A-Za-z]+-\d+$
Когда использовать правила замены текста
В ячейках есть лишние пробелы в начале или конце
Нужно удалить HTML-теги из описаний
Требуется заменить сокращения на полные слова ("шт." → "штука")
Необходимо привести текст к единому регистру
В данных встречаются разные варианты написания одного и того же
Нужно удалить служебную информацию в скобках
Требуется нормализовать разделители (запятые на точки, и т.д.)
Типы замены текста
Тип 1. Точная замена
Простая замена одного фрагмента текста на другой. Подходит когда нужно заменить конкретную подстроку.
Пример: Заменить "шт." на "штука" во всем тексте.
Настройки: тип замены = точная замена, что заменить = "шт.", на что заменить = "штука"
Тип 2. Регулярное выражение
Мощный тип замены с использованием регулярных выражений. Позволяет находить сложные паттерны и заменять их с использованием групп захвата.
Пример: Удалить всё, что в скобках, включая сами скобки.
Настройки: тип замены = регулярное выражение, что заменить = r'\s*[)]∗[)]∗', на что заменить = ""
Структура правила замены текста
Каждое правило содержит следующие параметры:
Столбец - номер столбца (для CSV/Excel), в котором выполняется замена
Что заменить - текст или регулярное выражение для поиска
На что заменить - текст для замены (для regex можно использовать $1, $2 и т.д.)
Тип замены - точная замена или регулярное выражение
Описание - необязательное описание для чего это правило
Активно - включено ли правило
Порядок - порядок применения правил (от меньшего к большему)
Примеры для CSV/EXCEL
Пример 1. Удаление лишних пробелов
Часто в данных встречаются лишние пробелы в начале, конце или между словами.
Правило:
Столбец = 2 (столбец с названием товара)
Что заменить = r'^\s+|\s+$'
На что заменить = ""
Тип замены = регулярное выражение
Порядок = 1
Результат: " Дрель Bosch " → "Дрель Bosch"
Пример 2. Удаление нескольких пробелов подряд
После удаления пробелов в начале и конце могут остаться множественные пробелы между словами.
Правило:
Столбец = 2
Что заменить = r'\s{2,}'
На что заменить = " "
Тип замены = регулярное выражение
Порядок = 2
Результат: "Дрель Bosch GSB" → "Дрель Bosch GSB"
Пример 3. Замена сокращений
Приведение сокращений к полному виду для единообразия.
Правило 1:
Столбец = 3 (столбец с единицами измерения)
Что заменить = "шт"
На что заменить = "штука"
Тип замены = точная замена
Порядок = 1
Правило 2:
Столбец = 3
Что заменить = "кг"
На что заменить = "килограмм"
Тип замены = точная замена
Порядок = 2
Правило 3:
Столбец = 3
Что заменить = "г"
На что заменить = "грамм"
Тип замены = точная замена
Порядок = 3
Пример 4. Удаление HTML-тегов из описания
Если в описаниях товаров встречаются HTML-теги, их нужно удалить.
Правило:
Столбец = 5 (столбец с описанием)
Что заменить = r'<[^>]+>'
На что заменить = ""
Тип замены = регулярное выражение
Порядок = 1
Результат: "Дрель <b>Bosch</b> профессиональная" → "Дрель Bosch профессиональная"
Пример 5. Удаление информации в скобках
Часто в названиях есть дополнительная информация в скобках, которую нужно удалить.
Правило:
Столбец = 2
Что заменить = r'\s*[)]∗[)]∗'
На что заменить = ""
Тип замены = регулярное выражение
Порядок = 1
Результат: "Дрель Bosch (профессиональная, с кейсом)" → "Дрель Bosch"
Пример 6. Замена разных вариантов написания бренда
Приведение всех вариантов написания бренда к единому виду.
Правило 1:
Столбец = 4 (столбец с брендом)
Что заменить = r'BOSCH|Bosch GMBH|Бош'
На что заменить = "Bosch"
Тип замены = регулярное выражение
Порядок = 1
Правило 2:
Столбец = 4
Что заменить = r'MAKITA|Макита|Makita Corp'
На что заменить = "Makita"
Тип замены = регулярное выражение
Порядок = 2
Пример 7. Нормализация десятичных разделителей
В разных файлах используются разные десятичные разделители: точка или запятая.
Правило для замены запятой на точку (только в числах):
Столбец = 6 (столбец с ценой)
Что заменить = r'(\d+),(\d+)'
На что заменить = r'\1.\2'
Тип замены = регулярное выражение
Порядок = 1
Результат: "4500,50" → "4500.50"
Пример 8. Удаление пробелов в числах (разделители тысяч)
Часто в числах используются пробелы как разделители тысяч, что мешает парсингу.
Правило:
Столбец = 6
Что заменить = r'(\d+)\s+(\d+)'
На что заменить = r'\1\2'
Тип замены = регулярное выражение
Порядок = 2
Результат: "4 500" → "4500"
Пример 9. Замена римских цифр на арабские
Иногда размеры или модели указаны римскими цифрами.
Правило:
Столбец = 7 (столбец с размером)
Что заменить = r'\b(XL|L|M|S|XS)\b'
На что заменить = используем словарь замен (каждое правило для каждой цифры)
Тип замены = регулярное выражение
Пример:
XL → "46-48"
L → "44-46"
M → "42-44"
S → "40-42"
XS → "38-40"
Пример 10. Удаление лишних символов в конце
Удаление точек, запятых и других знаков препинания в конце строк.
Правило:
Столбец = 2
Что заменить = r'[.,;:\s]+$'
На что заменить = ""
Тип замены = регулярное выражение
Порядок = 3
Результат: "Дрель Bosch." → "Дрель Bosch"
Пример 11. Замена кавычек
Приведение разных видов кавычек к единому стандарту.
Правило:
Столбец = 2
Что заменить = r'[""]'
На что заменить = '"'
Тип замены = регулярное выражение
Порядок = 1
Результат: "Дрель «Bosch»" → "Дрель "Bosch""
Пример 12. Удаление артиклей
В названиях могут быть артикли, которые не нужны для поиска.
Правило:
Столбец = 2
Что заменить = r'\b(the|a|an|der|die|das|le|la|les)\b\s+'
На что заменить = ""
Тип замены = регулярное выражение
Порядок = 2
Результат: "The Bosch drill" → "Bosch drill"
Пример 13. Нормализация написания "№"
Приведение разных вариантов обозначения номера к единому виду.
Правило:
Столбец = 8 (столбец с артикулом)
Что заменить = r'№|No.|#|номер'
На что заменить = "№"
Тип замены = регулярное выражение
Порядок = 1
Пример 14. Замена спецсимволов на пробелы
Замена табуляции, неразрывных пробелов и других спецсимволов на обычные пробелы.
Правило:
Столбец = 2
Что заменить = r'[\t\n\r\f\v]'
На что заменить = " "
Тип замены = регулярное выражение
Порядок = 1
Пример 15. Удаление повторяющихся слов
Иногда в названиях слова повторяются.
Правило:
Столбец = 2
Что заменить = r'\b(\w+)\s+\1\b'
На что заменить = r'\1'
Тип замены = регулярное выражение
Порядок = 3
Результат: "Дрель дрель Bosch" → "Дрель Bosch"
Примеры сложных регулярных выражений для замены
Пример 16. Извлечение и перестановка частей текста
Нужно поменять местами фамилию и имя: "Иванов Иван" → "Иван Иванов"
Правило:
Что заменить = r'^(\w+)\s+(\w+)$'
На что заменить = r'\2 \1'
Тип замены = регулярное выражение
Пример 17. Форматирование телефонных номеров
Приведение телефонов к единому формату: "8(495)123-45-67" → "+7 (495) 123-45-67"
Правило:
Что заменить = r'^8(\d{3})(\d{3})-(\d{2})-(\d{2})$'
На что заменить = r'+7 (\1) \2-\3-\4'
Тип замены = регулярное выражение
Пример 18. Извлечение чисел из текста с удалением букв
Если нужно оставить только цифры: "Арт. AB-12345" → "12345"
Правило:
Что заменить = r'[^0-9]'
На что заменить = ""
Тип замены = регулярное выражение
Пример 19. Добавление префикса к артикулу
Если артикулы должны начинаться с определенного префикса.
Правило:
Что заменить = r'^(\d+)$'
На что заменить = r'PRF-\1'
Тип замены = регулярное выражение
Результат: "12345" → "PRF-12345"
Пример 20. Удаление всего кроме букв и пробелов
Очистка текста от цифр и спецсимволов.
Правило:
Что заменить = r'[^а-яА-Яa-zA-Z\s]'
На что заменить = ""
Тип замены = регулярное выражение
Результат: "Дрель Bosch GSB-13/RE" → "Дрель Bosch GSB RE"
Порядок применения правил
Правила применяются в порядке возрастания поля "Порядок". Это критически важно для правильной обработки.
Пример правильной последовательности для очистки названия:
Порядок 1: Удалить HTML-теги
Порядок 2: Удалить информацию в скобках
Порядок 3: Заменить множественные пробелы на один
Порядок 4: Удалить пробелы в начале и конце
Порядок 5: Привести к верхнему регистру первую букву
Пример неправильной последовательности (не сработает):
Если сначала удалить пробелы, а потом удалять скобки, то пробелы вокруг скобок уже исчезнут и регулярное выражение для скобок может не сработать.
Примеры для YML (ЯНДЕКС.МАРКЕТ)
Пример 21. Замена в названии товара YML
XPath выражение указывает на тег, в котором нужно выполнить замену.
Правило:
XPath выражение = name
Что заменить = r'\s*[)]∗[)]∗'
На что заменить = ""
Тип замены = регулярное выражение
Порядок = 1
Пример 22. Замена в атрибутах YML
Замена в атрибуте available.
Правило:
XPath выражение = @available
Что заменить = "true"
На что заменить = "yes"
Тип замены = точная замена
Пример 23. Очистка параметров YML
Замена в тегах param.
Правило:
XPath выражение = param[@name="Вес"]
Что заменить = r'(\d+),(\d+)'
На что заменить = r'\1.\2'
Тип замены = регулярное выражение
Примеры для XML
Пример 24. Замена в тегах XML
Очистка наименования от лишних символов.
Правило:
XPath выражение = Наименование
Что заменить = r'\s+'
На что заменить = " "
Тип замены = регулярное выражение
Пример 25. Замена во вложенных тегах XML
Очистка значений характеристик.
Правило:
XPath выражение = Характеристики/Мощность
Что заменить = r'[^\d]'
На что заменить = ""
Тип замены = регулярное выражение
Примеры для JSON
Пример 26. Замена в простых полях JSON
Очистка названия товара.
Правило:
JSON Path = $.name
Что заменить = r'<[^>]+>'
На что заменить = ""
Тип замены = регулярное выражение
Пример 27. Замена во вложенных объектах JSON
Очистка значений характеристик.
Правило:
JSON Path = $.specifications.weight
Что заменить = r'(\d+),(\d+)'
На что заменить = r'\1.\2'
Тип замены = регулярное выражение
Пример 28. Замена в массивах JSON
Очистка всех элементов массива изображений.
Правило:
JSON Path = $.images[*]
Что заменить = r'^http://'
На что заменить = "https://"
Тип замены = точная замена
Практические примеры
Пример 29. Полная очистка названия товара
Исходные данные могут быть в разном виде, нужно привести к единому формату.
Последовательность правил для столбца 2 (название):
Правило 1 (порядок 1): Удалить HTML-теги
Что заменить = r'<[^>]+>'
На что заменить = ""
Правило 2 (порядок 2): Удалить информацию в скобках
Что заменить = r'\s*[)]∗[)]∗'
На что заменить = ""
Правило 3 (порядок 3): Удалить лишние пробелы
Что заменить = r'\s{2,}'
На что заменить = " "
Правило 4 (порядок 4): Удалить пробелы в начале и конце
Что заменить = r'^\s+|\s+$'
На что заменить = ""
Правило 5 (порядок 5): Заменить множественные дефисы
Что заменить = r'-+'
На что заменить = "-"
Правило 6 (порядок 6): Сделать первую букву заглавной
Что заменить = r'^(\w)'
На что заменить = r'\U\1\E' (специальный синтаксис)
Пример 30. Нормализация артикулов
Артикулы могут быть в разных форматах, нужно привести к единому.
Правило 1 (порядок 1): Удалить пробелы
Что заменить = r'\s+'
На что заменить = ""
Правило 2 (порядок 2): Удалить все не-буквенно-цифровые символы
Что заменить = r'[^\w]'
На что заменить = ""
Правило 3 (порядок 3): Привести к верхнему регистру
Что заменить = r'([a-z])'
На что заменить = r'\U\1\E'
Пример 31. Очистка цен
Цены могут быть в разных форматах, нужно подготовить для парсинга.
Правило 1 (порядок 1): Удалить пробелы-разделители тысяч
Что заменить = r'(\d+)\s+(\d+)'
На что заменить = r'\1\2'
Правило 2 (порядок 2): Заменить запятую на точку (десятичный разделитель)
Что заменить = r'(\d+),(\d+)'
На что заменить = r'\1.\2'
Правило 3 (порядок 3): Удалить все символы кроме цифр, точки и минуса
Что заменить = r'[^\d.-]'
На что заменить = ""
Правило 4 (порядок 4): Удалить лишние точки (оставить только одну)
Что заменить = r'.(?=.*.)'
На что заменить = ""
Использование групп захвата при замене
В регулярных выражениях можно использовать группы захвата (обозначаются скобками) и ссылаться на них в замене через $1, $2 и т.д.
Пример с двумя группами:
Что заменить = r'(\d+)\s[x*]\s(\d+)'
На что заменить = r'$1 на $2'
Результат: "280x200" → "280 на 200"
Пример с тремя группами:
Что заменить = r'(\d+)-(\d+)-(\d+)'
На что заменить = r'$3.$2.$1'
Результат: "2023-12-25" → "25.12.2023"
Пример с именованными группами:
Что заменить = r'(?P<day>\d{2}).(?P<month>\d{2}).(?P<year>\d{4})'
На что заменить = r'$year-$month-$day'
Результат: "25.12.2023" → "2023-12-25"
Типичные ошибки
Ошибка: "Замена не происходит"
Проверьте что правило активно (флажок "Активно" включен)
Убедитесь что указан правильный номер столбца\xpath\json path
Проверьте порядок применения - возможно другое правило изменяет текст до этого
Для точной замены проверьте регистр (замена чувствительна к регистру)
Ошибка: "Заменяется слишком много"
Сделайте регулярное выражение более точным, используйте границы слов \b
Добавьте больше контекста в паттерн
Используйте якоря ^ и $ для привязки к началу/концу строки
Ошибка: "Не работает регулярное выражение"
Проверьте синтаксис, особенно экранирование спецсимволов
Используйте онлайн-тестеры для отладки
Убедитесь что в выражении нет ошибок
Ошибка: "Порядок правил неправильный"
Продумайте последовательность: сначала грубая очистка, потом тонкая
Удаление лишнего должно идти до нормализации
Присвойте правильные номера порядка
Советы по использованию
Минимизируйте количество правил: Одно сложное регулярное выражение может заменить несколько простых правил.
Тестируйте на реальных данных: Возьмите выборку из файла и проверьте все правила.
Используйте описания: Всегда заполняйте описание правила, чтобы через месяц вспомнить зачем оно нужно.
Группируйте по столбцам\xpath\json path: Правила для одного столбца\xpath\json path лучше делать с последовательными номерами порядка.
Не забывайте про производительность: Слишком много правил или очень сложные регулярные выражения могут замедлить импорт.
Комбинируйте с правилами извлечения: Часто после замены текст становится готов для извлечения значений.