gpt4 book ai didi

regex - 正则表达式词法分析

转载 作者:行者123 更新时间:2023-12-02 07:56:36 26 4
gpt4 key购买 nike

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

最佳答案

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

这意味着,任何来自先前状态的信息都不能转移到后面的状态(输入中的几个字符)。因此,如果您有符号 w,则不能指定输入 必须 在序列后面具有完全相同的字符串 w。同样,您不能确保每个左括号也需要一个 closin paren(因此正则表达式本身甚至不是正则语言,因此不能用正则表达式描述:-))。

在理论计算机科学中,我们使用一组非常有限的正则表达式运算符,基本上仅由序列、替代 (|) 和重复 (*) 组成,其他一切都可以用这些运算符来描述。

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

其他提示:

关于regex - 正则表达式词法分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/616384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com