Страница 1 из 2

Регулярные выражения И или ИЛИ

Добавлено: 06 апр 2012 17:43
sveekey
Здравствуйте!

Мучает вопрос, какая разница, выставлять "И" и "ИЛИ" между регулярными выражениями.
Приведите, пож-та, пример, где это может быть полезно.
В моем примере, что бы я ни ставил (И или ИЛИ) результат абсолютно не меняется:
pli_regex.png
pli_regex.png (47.79 КБ) 5920 просмотров

Re: Регулярные выражения И или ИЛИ

Добавлено: 06 апр 2012 18:32
TechAdmin
Данный режим используется при автоматическом сопоставлении товаров между товарами из прайс-листа поставщика и товарами учётной системы, на основании результата регулярного выражения.

Re: Регулярные выражения И или ИЛИ

Добавлено: 06 апр 2012 19:31
sveekey
Согласен)

Вопрос в том, не могли бы вы привести пример (примеры), по которому бы была видна разница между выставлением И или ИЛИ между регулярными выражениями. Иными словами зачем вообще есть такая функция выбора "И"/"ИЛИ", если по факту всегда работает как "ИЛИ"

Re: Регулярные выражения И или ИЛИ

Добавлено: 10 апр 2012 21:19
Ixenon
Ни фига подобного. По факту работает как И вполне нормально. :D
6.jpg
6.jpg (69.4 КБ) 5892 просмотра
А теперь читаем внизу статистику! Всего было найдено соответствий - 3, далее идет длина трех членов, иногда в очень редких случаях, попадается длинна одночленов и многочленов, кто ее найдет, тому положен супер приз... но об этом разговор будет только по факту нахождения оных ;)

Re: Регулярные выражения И или ИЛИ

Добавлено: 10 апр 2012 22:27
RadLast
Не всегда есть возможность сопоставлять товары только по артиклю, его там может и не быть. Тогда можно сопоставить например, по производителю И модели.

Re: Регулярные выражения И или ИЛИ

Добавлено: 11 апр 2012 14:09
sveekey
Ixenon писал(а):Ни фига подобного. По факту работает как И вполне нормально. :D
6.jpg
А теперь читаем внизу статистику! Всего было найдено соответствий - 3, далее идет длина трех членов, иногда в очень редких случаях, попадается длинна одночленов и многочленов, кто ее найдет, тому положен супер приз... но об этом разговор будет только по факту нахождения оных ;)
Приведите пример, где работает как И, а где как ИЛИ

Re: Регулярные выражения И или ИЛИ

Добавлено: 11 апр 2012 16:31
Ixenon
sveekey писал(а):Приведите пример, где работает как И, а где как ИЛИ
Я пример привел того, как это работает в случае И.
У Вас, по факту, всегда работает как "ИЛИ"
sveekey писал(а):по факту всегда работает как "ИЛИ"
Это ведь Ваши слова?

Получается, что Ваши факты не достаточно объективны.

Теперь по поводу "ИЛИ"
ИЛИ работает только в том случае, если есть, например, 2 выражения, результат которых исходя из условий выражения не должен быть одинаковым. Т.е. другими словами для любой строки товара может быть получен либо результат первого выражения, либо второго, вот только тогда в этом смысл и появляется. Допустим имеются 2 рег. выражения для одного бренда, одно выражение, для одного типа моделей, а другое для другого. Вот в этом случае можно написать каждое рег.выражение в отдельную строку, а можно и в одну, при этом нужно поставить между полями знак "ИЛИ"

Re: Регулярные выражения И или ИЛИ

Добавлено: 11 апр 2012 20:03
sveekey
Спасибо за ответы, но все равно нет ясности((

Вот Ваш пример, и по нему результат один, независимо от того, выбирать "ИЛИ" или "И". Это немного "рвет шаблон")
И
regular_and.png
regular_and.png (13.35 КБ) 5880 просмотров
ИЛИ
regular_or.png
regular_or.png (13.75 КБ) 5880 просмотров
Очень прошу сделать скрины случаев, из которых понятно, что изменение И на ИЛИ что-то меняет на выходе. Заранее спасибо!

Re: Регулярные выражения И или ИЛИ

Добавлено: 12 апр 2012 17:05
Ixenon
Если смотреть в строку теста, то принцип работы этой системы понять не получится.
Вам нужно импортировать прайс, создать, рег. выражения, нажать на кнопочку "ТЕСТ на основании СТИПП" и уже в получившейся таблице смотреть результат.
В случае сравнения, каждое из 5-ти возможных рег выражений после применения к наименованию(если в поле "Назначение" выбрано наименование) выдает или не выдает какой то результат.
После этого все результаты расположенные в одной строке соединяются и получившийся текст сравнивается с товарами СТУС, при нахождении аналогии устанавливается связь между найденным товаром из СТУС и товаром из СТИПП

Re: Регулярные выражения И или ИЛИ

Добавлено: 12 апр 2012 19:07
sveekey
Верно говорите: каждое РВ выдает или не выдает свой результат, затем получившееся складывается.
Вот только опять нет разницы, выбирать "И" или "ИЛИ", все равно все складывается.

По логике это должно работать так:
-если РВ1 И РВ2, то при "РВ123" результат должен быть нулевой, а по факту выдает РВ1. Т.е. должны выполняться оба регулярных выражения
-если РВ1 ИЛИ РВ2, то при "РВ123" результат должен быть РВ1. Т.е. должно выполняться одно из регулярных выражений.

По факту сейчас все 5 регулярных выражений работают как сумматор результатов выполнения каждого из выражений в отдельности. Если я не прав, то киньте в меня скриншот, по которому видно, что при И и ИЛИ на выходе получается разный результат.

PS А по поводу импорта прайс-листа вы вообще поставили в тупик: чем строка проверки рег выражения отличается от строки в прайсе, ведь я могу туда ввести любую позицию из прайса для проверки.