There are three different solutions to implement regular expression matching: DFA, NFA and Backtracking. I am looking for examples:
What I found out so far is:
Every regular expression, which can be implemented with a NFA, can also be implemented with a DFA. Every NFA can be transformed into a DFA.
Regular expressions, which require backtracking, are regular expressions, which contain back references like /(a)\1/
.
i guess there is more than 1 meaning to the word backtracking - even '.*a'
has to backtrack to match the string "lalaiiiiiii"
(because .*
will first match the whole string - so then a
won't match anything - and only then it will give up one character at a time, so the final match would be "lala"
)
i highly recommend http://www.regular-expressions.info/