Например. регулярное выражение go*d
- это шаблон, который будет соответствовать таким строкам, как gd
, god
, good
...
И вы можете себе представить, что его DFA будет похож на автомат с тремя состояниями.
Когда он используется для поиска по шаблону, например. учитывая предложение xxxxgodxxxxgoodxxx
, DFA go*d
, похоже, не сработает. Даже символ x
не определен в этом DFA с 3 состояниями.
Мы можем представить, что здесь может работать DFA с 4 состояниями и дополнительным состоянием «сброс». То есть, когда встречается неопределенный символ, переходим в это состояние «сброса».
Вопрос в том, как инструмент поиска по шаблону достигает цели поиска с помощью регулярного выражения, такого как go*d
?