E.g. регулярное выражение go*d
это шаблон будет соответствовать строки как gd
, god
, good
...Что такое DFA, используемый для поиска шаблонов?
И вы можете себе представить его DFA будет как 3-государственной машине.
Когда он используется для поиска по шаблону, например. данное предложение xxxxgodxxxxgoodxxx
, DFA go*d
, похоже, не сработает. Даже символ x
не определен в этом DFA с 3 состояниями.
Мы можем представить себе, что здесь может работать DFA с 4 состояниями с дополнительным «сбросом» состояния. То есть, когда встречается неопределенный символ, перейдите в это состояние «перезагрузки».
Вопрос в том, как инструмент поиска по шаблону достигает цели поиска с регулярным выражением, например go*d
?
Этот звук как ваш предыдущий вопрос: http://stackoverflow.com/questions/15489338/difference-between-pattern-matching-and-pattern-searching-in-terms-of-dfa-regex. –
@OliCharlesworth Они связаны между собой. Но этот вопрос касается стратегии реализации данного поискового регулярного выражения. Предыдущий вопрос касается общей разницы между поиском и сопоставлением. Решение предыдущего могло помочь этому. – JackWM