Регулярные выражения при автозамене (удаление)

Помощь пользователям в работе с программой E-Trade PriceList Importer
Ответить
Dukez
Сообщения: 85
Зарегистрирован: 02 ноя 2011 16:35

Для вот такой строчки в прайсе: Матрас American Style Денвер 1600x2000 (Queen Plus size)
пишу следующее выражение в автозамене и галочку удалить: [0-9]{3}([0]{1})x[0-9]{3}([0]{1})
рег1.jpg
рег1.jpg (84.07 КБ) 5151 просмотр
получаю результат: 16x20

Если тоже выражение и туже строчку в Доп.столбцах проверяю - получаю: 00
что на мой взгляд является правильным ответом.
При этом выражении должно браться два ноля, по одному от каждой цифры.

при [0-9]{3}([0]{1})x[0-9]{3}([0]{1}) получается тоже самое
Аватара пользователя
support
Сообщения: 10563
Зарегистрирован: 09 ноя 2008 21:37

А проблема в чем? Это РВ дает результат 00, если вы создаете автозамену удаления РВ то бишь "00" то и получаете вместо 1600-16, а вместо 2000 - 20.
C уважением, поддержка ElbuzGroup.
Документация E-Trade Jumper
Dukez
Сообщения: 85
Зарегистрирован: 02 ноя 2011 16:35

Данное РВ: [0-9]{3}([0]{1})x[0-9]{3}([0]{1}) указывает на определенные знаки-цифры в ряду цифр при определенном условии.
То есть регулярным выражением указывают определенные ноли на определенном месте.
160(0)х190(0) - те что в скобках, а не какие-то другие.
1) Вначале должно быть три цифры "[0-9]{3}" . Не две и не одна, а три.
2) После которых должен быть обязательно ноль "([0]{1})" , который и берется, потому что значение в скобках.
3) после которого х и только латиницей, так как для русского надо писать другое рег. выражение с использование русского х
4) после должно идти три цифры "[0-9]{3}" . Не две и не одна, а три.
5) после этих трех цифр должен быть обязательно ноль "([0]{1})" , который и берется, потому что значение в скобках.
В моем понимании при таких выставленных настройках удаление через автозамену должно быть удаление тех элементов, которые указаны в рег. выражении в скобках. То есть при значении 1600х1900 оставаться должны 160х190

Следуя описанной вами логике сначала происходит выделение значения 00, а потом оно через "найти и заменить" удаляется.
Если все работает через "Найти и заменить" пробую выставить рег. выражение через замену по вашей логике. Убираю галочку с У и в поле "Чем заменить?" ставлю 0.
рег2.jpg
рег2.jpg (29.49 КБ) 5145 просмотров
При исходных значениях 1600х1900 получаю значение 0
По какой логике и как это работает я вообще боюсь предугадать.

При составленном рег. выражении [0-9]{3}([0]{1})x[0-9]{3}([0]{1})|[0-9]{3}x[0-9]{3}([0]{1})|[0-9]{3}([0]{1})x[0-9]{3} происходит тоже самое. То значок или "|" не работает и выполняется только первое условие.

Суть проблемы - мне нужно удалить только те 0 и только в тех значениях, которые подпадают под мои определенные условия РВ. В столбце со значениями у меня есть габариты и в мм и в см. Есть и 1600х1900, есть и 160х190. Этот весь беспорядок я хочу привести к общему виду.
Но тут надо учитывать что варианты 800х1900, 1900х800, 700х700 это могут быть в мм, а вот 120х190, 200х200 уже скорее всего в мм. Это все я могу задать в рег. выражении, но взять просто "00" и заменить его на "0" я не могу. Потому что для 100х100 (а тут явно уже см, а не мм) это правило заменит на 10х10

П.С. Уже не первый раз в разных условиях пытался использовать РВ в автозамене, но так и не смог, так как логика работы абсолютно не понятна. Если возможно двоякое трактование условий, то может их где-то надо подробно расписать, а не заставлять пользователей догадываться?

П.П.С. Все это я перенабираю второй раз. Первый раз данное сообщение было набрано за два часа, было намного более подробным, содержало много примеров и более подробное описание логики. Но не сохранилось из-за авторазлогинивания на форуме. Спасибо. Второй раз набрал, но менее подробно, так что если что-то непонятно, пожалуйста не пишите "А че?"
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

Как вариант в поле "Заменить на" можно использовать подстановойные знаки типа "$1", где с помощью цифры задается порядковый номер выражения в скобках.
Т.е. если к строке "1600х1900" применить выражение в поле "Найти" которого написано "([0-9]{3})([0]{1})(x)([0-9]{3})([0]{1})", а в поле "Заменить на" которого написано "$1$3$4", то в результате должно получиться "160х190"
tkachenkoser
Сообщения: 498
Зарегистрирован: 01 авг 2011 12:03

интересная темка. Удалось задействовать "у" (удаление) регулярного выражения? У меня пока некак (
Не знаю как в автозамене, а в ручную замене $1 также не работают.
Большой опыт работы с PLI, CC, парсерами, CRM и ERP системами. Маркетинг и консалтинг для интернет-магазинов. Контакты в профиле.
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

tkachenkoser писал(а):Не знаю как в автозамене, а в ручную замене $1 также не работают.
Все татары кроме я, да? :D
tkachenkoser
Сообщения: 498
Зарегистрирован: 01 авг 2011 12:03

Ixenon писал(а):
tkachenkoser писал(а):Не знаю как в автозамене, а в ручную замене $1 также не работают.
Все татары кроме я, да? :D
бывает у меня )
Большой опыт работы с PLI, CC, парсерами, CRM и ERP системами. Маркетинг и консалтинг для интернет-магазинов. Контакты в профиле.
tkachenkoser
Сообщения: 498
Зарегистрирован: 01 авг 2011 12:03

Поднимаю темку, т.к. проблема не решена, а очень актуальна.
Если использовать автозамену с регулярным выражением, то все работает.. Пример что регулярное выражение верное и работает на скрине:
DrlNvYzuyV1X2P.jpg
DrlNvYzuyV1X2P.jpg (411.83 КБ) 5034 просмотра
А удаление найденного РВ, ни таким способом
2D2P4KOehJq5k23.jpg
2D2P4KOehJq5k23.jpg (325.77 КБ) 5034 просмотра
Ни таким - не работает.
3D2P4KOehJqOP23.jpg
3D2P4KOehJqOP23.jpg (329.82 КБ) 5034 просмотра
Большой опыт работы с PLI, CC, парсерами, CRM и ERP системами. Маркетинг и консалтинг для интернет-магазинов. Контакты в профиле.
Ixenon
Сообщения: 743
Зарегистрирован: 19 ноя 2011 09:03

Как вариант, можно на пробел заменить, только вроде там галочку в поле "УП" нужно ставить.
И в конце возможно потребуется еще одно регулярное выражение заменяющее один или более пробельных символов, на знак пробела, правда уже не помню точно.
Это конечно не решение данной проблеммы, а всего лишь как вариант, которым можно пользоваться, пока проблемма не решена.
tkachenkoser
Сообщения: 498
Зарегистрирован: 01 авг 2011 12:03

я обычно делаю иначе, заменяю на /////, а потом после добавления товара делаю поиск с удалением.
Об проблеме пишу давно, т.к что при автозамене РВ она криво работает, что при обычной замене
Большой опыт работы с PLI, CC, парсерами, CRM и ERP системами. Маркетинг и консалтинг для интернет-магазинов. Контакты в профиле.
Ответить

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