Страница 1 из 2
Использование регулярных выражений в системе найти/заменить
Добавлено: 15 фев 2013 11:36
Ixenon
Здравствуйте, уважаемые разработчики!
Подскажите пожалуйста каким образом используются регулярные выражения в системе поиск/замена.
Хотя бы пару примеров, а то как то непонятно получается.
Пишу в строке поиска строку "KENWOOD\sJE\s[0-9]", ставлю галочку для чекбокса "РВ" и нажимаю кнопку "Найти" программа пишет, что результаты не найдены.

- 1.jpg (106.1 КБ) 4889 просмотров
или вот так пробую

- 2.jpg (130.26 КБ) 4889 просмотров
результат аналогичный.
Но стоит только строку поиска изменить на "KENWOOD JE", убрать галочку для чекбокса "РВ" и нажать кнопку "Найти", программа сразу находит первый подходящий результат

- 3.jpg (129.02 КБ) 4889 просмотров
Re: Использование регулярных выражений в системе найти/замен
Добавлено: 15 фев 2013 19:54
TechAdmin
Re: Использование регулярных выражений в системе найти/замен
Добавлено: 15 фев 2013 20:42
Ixenon
Спасибо сработало. Еще вопрос. В системе автозамены наименования я могу написать в поле найти "(KENWOOD)\s(JK)\s(760)", а в поле заменить "$1 $3 $2" и в результате из такого наименования "KENWOOD JK 760" получится такое "KENWOOD 760 JK" а в системе найти/заменить так сделать у меня не получилось. Не понятно почему, ведь и тут и там одна и та же совокупность действий найти - заменить, а работают получается по разному. Можно ли сделать так, чтобы регулярные выражения в системе "найти/заменить" работали бы так же как в системе автозамены(кнопка замена наименования товара)?
Re: Использование регулярных выражений в системе найти/замен
Добавлено: 16 фев 2013 14:46
TechAdmin
В системе найти/заменить использован старый алгоритм работы с регулярными выражениями, доработаем этот момент, в новой версии ПЛИ будет работать как вам необходимо.
Re: Использование регулярных выражений в системе найти/замен
Добавлено: 24 фев 2013 18:57
Ixenon
TechAdmin писал(а):В системе найти/заменить использован старый алгоритм работы с регулярными выражениями, доработаем этот момент, в новой версии ПЛИ будет работать как вам необходимо.
До сих пор не работает, либо работает так, что как серпом по яйцам, например вот результат нажатия кнопки "Заменить все"

- 1.jpg (79.92 КБ) 4845 просмотров
Re: Использование регулярных выражений в системе найти/замен
Добавлено: 25 фев 2013 10:15
TechAdmin
По вашему алгоритму как должно было замениться наименование при таких настройках?
Re: Использование регулярных выражений в системе найти/замен
Добавлено: 25 фев 2013 10:37
Ixenon
TechAdmin писал(а):По вашему алгоритму как должно было замениться наименование при таких настройках?
Алгоритм тут может быть только один. заменяться должна часть строки, которая выделяется регулярным выражением, и заменяться эта выделенная часть строки должна на то, что записано в поле "Заменить"
В общем оба поля должны работать как в системе замены наименования.
Совсем не понятно для чего нужна галочка "РВ" напротив поля "Заменить", огромная просьба объяснить ее предназначение.
Re: Использование регулярных выражений в системе найти/замен
Добавлено: 25 фев 2013 12:10
TechAdmin
Если не стоит флажок "РВ" в поле "Заменить", тогда будет заменяться текст найденный регулярным выражением из поля "Найти", текстом из поля "Заменить".
Если стоит флажок "РВ" в поле "Заменить", тогда можно применять конструкции вида "$1 $3 $2".
При активации двух флажков "РВ" полностью используется поиск/замена на основании рег. выражений.
Фактически используется данная функция VBScript:
Код: Выделить всё
Замена соответствующих шаблону вхождений в строке-оригинале на указанную подстроку. Возвращает (возможно) изменённую строку.
Regexp.Replace(<strSource>,<strReplace>)
Параметры:
<strSource> - строка-оригинал (где заменять).
<strReplace> - подстрока для замены (на что заменять).
Re: Использование регулярных выражений в системе найти/замен
Добавлено: 25 фев 2013 12:26
Ixenon
TechAdmin писал(а):Если не стоит флажок "РВ" в поле "Заменить", тогда будет заменяться текст найденный регулярным выражением из поля "Найти", текстом из поля "Заменить".
Если стоит флажок "РВ" в поле "Заменить", тогда можно применять конструкции вида "$1 $3 $2".
Огромное спасибо за разъяснение! Хотелось бы узнать когда оно так заработает?
Спрашиваю в связи с тем, что немного выше я написал о том, что работает непонятно как.
На картинке видно и то, что я указал в поле "Найти", и то, что я указал в поле "Заменить", и результат в виде части СТУС, где у найденных товаров в поле "Наменование №1" заменилось вообще всё, на то, что было в поле "Заменить"
И вообще у Вас функция не совсем понятная какая то, по логике 3 параметра должно быть.
1. Где заменять.
2. Что искать. (сюда попадает текст из поля "найти")
3. Чем заменить. (сюда попадает текст из поля "заменить")
а у Вас 2 получается:
<strSource> - строка-оригинал (где заменять).
<strReplace> - подстрока для замены (на что заменять).
Re: Использование регулярных выражений в системе найти/замен
Добавлено: 07 мар 2013 11:38
Ixenon
С установкой обоих галочек работает. Огромное спасибо.