我正在使用龙书中的算法实现正则表达式解析器。现在我可以生成一个DTran表并解析一些基本的正则表达式,如:(a|b)*abb
。
但是在实现匹配任何字符的.
符号时遇到了问题。龙书中没有关于它的文字,是否有关于实施它的一些例子或文章?
答案 0 :(得分:0)
自己解决,这就是它的乐趣。以下不是一个答案,但不过。
它与其他模式匹配非常相似,比如*,并且记住在同一文本上可能会发生多个匹配;这就是为什么可能把它留下来(当语法丰富时,Dtran或状态机变硬);加上它真的很相似,但接受一个字符。你可能不得不切换到NFA(非确定性有限自动机)以保持简单。
很明显,我没有完成龙书,但在大学里,“计算理论”涵盖了它。我画了许多状态机。