проблемы применения регулярных выражений для товаров

Помощь пользователям в работе с программой E-Trade PriceList Importer
Ответить
Magic
Сообщения: 2
Зарегистрирован: 24 сен 2010 17:02

24 сен 2010 17:24

Здравствуйте.

В прайсе поставщика: Inspiron N5010 (P10F) i3-370M(2.4GHz) /15.6"HD (1366X768) WLED/3GB/250GB /DVDRW/512 MB ATI Mob Radeon HD 5470/802.11/BT/6Cell/Cam1.3MP/W7HB/1Y/CiS/Black

в наименовании нужно оставить первые 5 слов
создал правила, проверил..всё нормально..назначение => наименование
правило ^(\w+\b.*?){1} И ^(\w+\b.*?){2} И ^(\w+\b.*?){3} И ^(\w+\b.*?){4} И ^(\w+\b.*?){5}
результат по тесту:
Inspiron N5010 P10F i3 370M
поставлены галочки на А и З, но при импорте ничего не меняется((
Изображение
прайс
http://priceshock.ru/stock_MARVEL.xls
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

24 сен 2010 19:12

В текущей версии программы нет возможности заменять наименование товара на основании результата выполнения регулярного выражения.
В новой версии программы появится данная возможность.
С уважением, поддержка ElbuzGroup.
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

25 сен 2010 17:00

Как говорилось ранее, в новой версии программы появится возможность заменять наименование товара из прайс-листа результатом выполнения регулярного выражения или результатом выполнения составных выражений (до 5 выражений). Ниже описан процесс активации этого режима в новой версии программы обработки прайс-листов.

Для настройки этого режима необходимо составить регулярное выражение, проверить его работоспособность на основании наименования товара, активировать флажок "З" (замена) в сетке регулярных выражений, примерный вид окна с настройками:
setup_regexp_for_category.png
setup_regexp_for_category.png (46.99 КБ) 4600 просмотров


Для прайс-листа настроить формирование составных значений, примерный вид окна с настройками:
setu_supply_price.png
setu_supply_price.png (93.2 КБ) 4600 просмотров

Необходимо нажать на кнопку "Добавить макроподстановку" и выбрать пункт "{REG_EXP} - значение результата регулярного выражения для категории товара".
После этого, замена наименования товара на основании результата выполнения регулярного выражения будет применяться только для этого прайс-листа.

Затем проимпортировать прайс-лист, примерный вид окна программы после импорта:
final_import_price.png
final_import_price.png (13.4 КБ) 4600 просмотров
С уважением, поддержка ElbuzGroup.
Magic
Сообщения: 2
Зарегистрирован: 24 сен 2010 17:02

28 сен 2010 17:32

Сегодня подгрузил обновление для PI 2.0.16
Теперь регулярки работают, но не для всех категорий товара.
Доходит до смешного: на категории стоит правило, какие-то товары отрегуляривает какие-то нет.
Или вообще не обрабатывает категорию
По тесту все ок по-прежнему

Изображение
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

29 сен 2010 14:45

Вышлите пожалуйста нам вашу БД и прайс-лист, мы проверим работу на ваших настройках.
С уважением, поддержка ElbuzGroup.
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

06 окт 2010 13:03

Данная проблема будет исправлена в новой версии программы, которая ожидается к концу этой недели.

Вы используете регулярные выражения только с целью получить первые 5 слов из наименования товара в прайс-листе?

Обращаем ваше внимание на некоторые ошибки при замене наименований на основании регулярных выражений, например в прайс-листе есть товар "Bluetooth мышь, цвет зеленый", для этого товара указаны регулярные выражения вида "^(\w+\b.*?){1}", после обработки наименование товара заменяется на "Bluetooth", потому что "\w+" означает: все буквы латинского алфавита + цифры + знак подчеркивания, поэтому слова "мышь, цвет зеленый" не учитываются и на выходе получается одно слово "Bluetooth". Проверьте этот момент.

Для обработки таких наименований, с выборкой слов содержащих кириллицу возможно использовать это регулярное выражение (для 5 слов):
^([a-zа-я0-9_]{1,})(.*?)([a-zа-я0-9_]{1,})(.*?)([a-zа-я0-9_]{1,})(.*?)([a-zа-я0-9_]{1,})(.*?)([a-zа-я0-9_]{1,})

regexp_for_replace_product_name.png
regexp_for_replace_product_name.png (48.07 КБ) 4580 просмотров


В таблице приведены некоторые метасимволы, которые заменяют обычные символы:

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

Метасимвол    Заменяет               Значение
.                                                      Любой символ
\d                 [0-9]                            Цифра
\D                 [^0-9]                          Не цифра
\w                 [A-Za-zА-Яа-я0-9_]      Символы образующие «слово» (буквы, цифры и символ подчёркивания)
\W                [^A-Za-zА-Яа-я0-9_]    Символы не образующие «слово»
\l                  [a-zа-я]                       Все символы в нижнем регистре
\u                 [A-ZА-Я]                      Все символы в верхнем регистре
\s                                                   Любой пробел
\S                                                   Любой не пробел


Квантификаторы – метасимволы, задающие число повторений. Они указываются после символа или метасимвола.
В таблице приведены некоторые квантификаторы:

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

Обозначение          Число повторений
*                   Ноль или более
+                  Одно или более
?                  Ноль или один раз
*?                 Ноль или более (короткий вариант)
+?                Одно или более (короткий вариант)
??                Ноль или один раз (короткий вариант)
{n}              n повторений
{n,}             n или более повторений
{n, m}         Минимум n и максимум m повторений
С уважением, поддержка ElbuzGroup.
Ответить

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