实现正则表达式匹配有三种不同的解决方案:DFA,NFA和Backtracking。我正在寻找例子:
关于这个主题的一些好文献的推荐也会很好。
答案 0 :(得分:3)
我猜单词回溯的含义不止一个 - 即使'.*a'
必须回溯以匹配字符串"lalaiiiiiii"
(因为 .*
将首先匹配整个字符串 - 因此 a
将无法匹配任何内容 - 只有这样它才会一次放弃一个字符,因此最终匹配将是 "lala"
)
答案 1 :(得分:-2)
到目前为止我发现的是:
每个可以使用NFA实现的正则表达式也可以使用DFA实现。每个NFA都可以转换为DFA。
需要回溯的正则表达式是正则表达式,包含/(a)\1/
之类的反向引用。