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

Помощь пользователям в работе с программой E-Trade PriceList Importer
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

А можете подсказать тогда, как решается такая задача... Множество наименований хранится как Bosch TWK6003V или Bosch TWK3A011, нужно добавить пробел между TWK и самой моделью. Т.е. получить Bosch TWK 6003V и Bosch TWK 3A011. Пробовал по аналогии с вашими запросами сделать, но не получилось.
(Bosch\sTWK[0-9]{1,4})
(Bosch\sTWK\s[0-9]{1,4})
Пробовал так)
Не получилось...
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

eugen писал(а):А можете подсказать тогда, как решается такая задача... Множество наименований хранится как Bosch TWK6003V или Bosch TWK3A011, нужно добавить пробел между TWK и самой моделью. Т.е. получить Bosch TWK 6003V и Bosch TWK 3A011. Пробовал по аналогии с вашими запросами сделать, но не получилось.
(Bosch\sTWK[0-9]{1,4})
(Bosch\sTWK\s[0-9]{1,4})
Пробовал так)
Не получилось...
Надо так, найти:

Код: Выделить всё

(Bosch\sTWK)([0-9]{1,4})
, заменить на:Галочки РВ должны быть установлены и напротив "найти" и напротив "заменить на"
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

Делаю все как вы написали. Не работает...
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

eugen писал(а):Делаю все как вы написали. Не работает...
скриншот покажите окна найти/заменить когда вы там все прописали и только кнопку "заменить все" осталось нажать и наименование из СТУС одно скопируйте и тут выложите
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

Хм. Я просто нажимал клавишу заменить, вместо заменить все. Но вот все ранво есть косяк. Почему-то берет в скобки итоговое значение.
Прикрепил файл
Вложения
Безымянный.png
Безымянный.png (250.73 КБ) 4954 просмотра
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

eugen писал(а):Хм. Я просто нажимал клавишу заменить, вместо заменить все. Но вот все ранво есть косяк. Почему-то берет в скобки итоговое значение.
Прикрепил файл
Надо убрать скобки из поля "заменить"
P.S. Со скобками, это я лишнего написал.
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

Ixenon писал(а):
eugen писал(а):Хм. Я просто нажимал клавишу заменить, вместо заменить все. Но вот все ранво есть косяк. Почему-то берет в скобки итоговое значение.
Прикрепил файл
Надо убрать скобки из поля "заменить"
P.S. Со скобками, это я лишнего написал.
Супер, работает!
А можно еще попросить Вас научить обрезать символы лишние. Тот же пример, у меня есть название
Krups KP1006E1
Надо оставить только Krups KP1006, т.е. обрезать 2 символа после 4 цифр.
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

eugen писал(а):
Ixenon писал(а):
eugen писал(а):Хм. Я просто нажимал клавишу заменить, вместо заменить все. Но вот все ранво есть косяк. Почему-то берет в скобки итоговое значение.
Прикрепил файл
Надо убрать скобки из поля "заменить"
P.S. Со скобками, это я лишнего написал.
Супер, работает!
А можно еще попросить Вас научить обрезать символы лишние. Тот же пример, у меня есть название
Krups KP1006E1
Надо оставить только Krups KP1006, т.е. обрезать 2 символа после 4 цифр.
Я могу научить, но прежде вы должны знать одну неприятную особенность данного способа массового изменения наименований, посредством регулярных выражений.
Объясню на конкретном примере.
Допустим в СТУС у вас есть товар "Krups KP1006E1" а в стипп у вас есть 4 товара с названиями "Krups KP1006" от по одному от поставщика, т.е в СТУС есть 4 поставщика, у каждого из них есть товар с названием "Krups KP1006"
Автоматически эти 4 товара СТИПП с товаром СТУС "Krups KP1006E1" конечно же не сопоставятся.
Если вручную изменить название1 у товара СТУС "Krups KP1006E1" на "Krups KP1006", то при следующем импорте все 4 товара СТИПП автоматически сопоставятся этому товару СТУС, если в настройках автоматического сопоставления есть галочка напротив "Поиск соответствия товаров: по наименованию"
А вот если это наименование СТУС "Krups KP1006E1" будет изменено на наименование "Krups KP1006" посредством регулярных выражений(т.е. посредством обсуждаемого нами способа) в этом случае автоматическое сопоставление этих товаров при следующем импорте прайс-листов поставщиков не произойдет. Для того, чтобы оно произошло, нужно после изменения названий СТУС посредством регулярных выражений и перед импортом прайс-листов поставщиков запустить процедуру обновления СТУС и СТИПП, запускается так: "Настройки и операции >>> Очистка товаров для сопоставления >>> Обновить СТУС и СТИПП"
За то есть один немаловажный положительный момент, после нажатия кнопки "Заменить все" перед вами открывается окно предварительных результатов, что найдено и на что будет заменено и вы можете либо подредактировать предлагаемые результаты, либо отменить эту операцию.
Найти:

Код: Выделить всё

(Krups\s[a-z]{2}[0-9]{4})(.+)
Заменить:В этом регулярном выражении, в поле найти выделяются 2 части - то, что попадает в первые круглые скобки - первая часть, то, что во вторые - вторая часть. В поле Заменить выводится первая часть, т.е. то, что попало в первые скобки.
В первые скобки попадет часть названия начинающаяся с фразы: "Krups", затем идет пробельный символ: "\s", затем 2 латинские буквы: "[a-z]{2}", затем четыре цифры: "[0-9]{4}", в данном случае это будет "Krups KP1006".
Во вторые скобки попадет, любые 1 или более символов идущих следом за найденным: ".+", т.е. в данном случае это будет "E1"
В поле заменить подставляется что было найдено с помощью выражения в первых скобках.
В итоге мы нашли это "Krups KP1006" и это "E1" и заменили на это "Krups KP1006"
eugen
Сообщения: 58
Зарегистрирован: 25 янв 2013 21:10

Огромное спасибо за такой развернутый ответ и за помощь решении задачи!
Ответить

Вернуться в «Техническая поддержка программы E-Trade PriceList Importer»