сопоставление шаблонов поиска
От: bnn Украина  
Дата: 22.03.10 07:07
Оценка:
Как можно сопоставить два разных шаблона поиска (regexp1 и regexp2)использующих регулярные выражения, на предмет определения могут ли у них быть общие решения. Т.е. можно ли определить, что существуют (или не могут существовать) наборы данных которые соответствует и выражению regexp1 и regexp2, не для конкретного набора данных а в общем случае.
Например:
regexp1 sample[0-9]+
regexp2 ??mple30
regexp3 = [0-9]+mple??
regexp1 и regexp2 — сопоставляются
regexp1 и regexp3 — не сопоставляются
regexp2 и regexp3 — сопоставляются

22.03.10 14:16: Перенесено модератором из 'C/C++' — Кодт
сопоставление регулярные выражения
Re: сопоставление шаблонов поиска
От: dilmah США  
Дата: 22.03.10 11:23
Оценка: 5 (1) -1
каждому регэкспу соответствует конечный автомат.
Можно взять произведение этих автоматов (состояние нового автомата это пара состояний, пара (a,b) переходит в (x,y), если a->x и b->y)
И посмотреть достижимо ли в этом автомате конечное состояние (фактически есть ли путь в нем как в графе).
Re[2]: сопоставление шаблонов поиска
От: BNN Украина  
Дата: 24.03.10 06:42
Оценка:
Здравствуйте, dilmah, Вы писали:

D>каждому регэкспу соответствует конечный автомат.

D>Можно взять произведение этих автоматов (состояние нового автомата это пара состояний, пара (a,b) переходит в (x,y), если a->x и b->y)
D>И посмотреть достижимо ли в этом автомате конечное состояние (фактически есть ли путь в нем как в графе).

данный путь решения не приемлем с практической точки зрения, я бы сказал он "академический",
даже несложному выражению будет соответствовать конечный автомат с огромным числом состояний, для вычисления которого требуется ресурсы...
Re[3]: сопоставление шаблонов поиска
От: dilmah США  
Дата: 24.03.10 07:01
Оценка:
BNN>данный путь решения не приемлем с практической точки зрения, я бы сказал он "академический",
BNN>даже несложному выражению будет соответствовать конечный автомат с огромным числом состояний, для вычисления которого требуется ресурсы...

сами по себе автоматы не такие и большие. Непрактично большим, действительно, является их произведение, но его не обязательно строить явно, достаточно держать в памяти его сомножители.
Re[4]: сопоставление шаблонов поиска
От: mefrill Россия  
Дата: 24.03.10 09:53
Оценка:
Здравствуйте, dilmah, Вы писали:


BNN>>данный путь решения не приемлем с практической точки зрения, я бы сказал он "академический",

BNN>>даже несложному выражению будет соответствовать конечный автомат с огромным числом состояний, для вычисления которого требуется ресурсы...

D>сами по себе автоматы не такие и большие. Непрактично большим, действительно, является их произведение, но его не обязательно строить явно, достаточно держать в памяти его сомножители.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.