当前位置:  开发笔记 > 编程语言 > 正文

正则表达式词法分析

如何解决《正则表达式词法分析》经验,为你挑选了1个好方法。

为什么重复的字符串如[wcw | w是a和b的字符串]不能用正则表达式表示?请.给我详细的答案,作为词法分析的新手.谢谢 ...



1> Joey..:

原始形式的正则表达式描述了常规语言/语法.那些不能包含嵌套结构,因为这些语言可以用简单的有限状态机来描述.简化后你可以想象出语言的每个单词都是从左到右(或从右到左)严格增长,其中重复结构必须明确定义并且是静态的.

这意味着,以前的状态中没有任何信息可以转移到以后的状态(输入中的一些字符).所以,如果你有你的符号W¯¯你不能指定的输入必须具有完全相同的字符串W¯¯的序列中较晚.类似地,你不能确保每个开头的paranthesis也需要一个closin paren(因此正则表达式本身甚至不是常规语言,因此不能用正则表达式来描述:-)).

在理论计算机科学中,我们使用了一组非常有限的正则表达式算子,基本上只包括序列,替代(|)和重复(*),其他一切都可以用这些操作来描述.

但是,通常正则表达式引擎允许将某些子模式分组为匹配,然后可以引用或提取这些匹配.一些引擎甚至允许在搜索表达式字符串本身中使用这样的反向引用,从而允许表达式不仅仅描述常规语言.如果我没记错的话,使用反向引用甚至可以产生不具备上下文的语言.

附加指针:

这个 StackOverflow问题

维基百科

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有