perl,python,java和vim等使用正则表达式进行解析的基本方法是什么?
不聪明的形式语言方法(即NFA
,DFA
); 解析器组合器(例如14行正则表达式引擎)也是如此。
我看过Java实现perl样式正则表达式的源代码,但是其复杂的功能(例如,反向引用)和效率(例如,Boyer-Moore子字符串匹配)使得很难看到它的基本工作原理。
编辑 各种消息来源说,“回溯”参与(如正则表达式匹配可以是简单,快速;形式化方法的课程),但不清除到底是什么回溯上...它来评估的方式NFA
?可以直接从正则表达式的AST完成吗?
java / perl / python正则表达式引擎实际上是做什么的?
是否是这样的:“一种以常规语言生成所有可能单词的方法,但是一旦它与输入字符串不匹配,就放弃特定单词”。
翻阅古今
holdtom
相关分类