Jus*_*rey 2 regex unix bash glob
我遇到了以下问题:
Does filename “globbing” provide the expressive power of standard regular expressions? Explain
.
问题是,我知道什么是globbing,我知道正则表达式.但这种表现力是什么?我应该在什么基础上回答这个问题?我知道在globbing和regex中,"?" 和"*"结构的使用方式不同.我应该只提一下它们的用法差异吗?在维基百科中,正则表达式的表达能力是根据形式语言和自动机来给出的.解决方案是否复杂?提前致谢!
在维基百科中,正则表达式的表达能力是根据形式语言和自动机来给出的.解决方案是否复杂?
是.
任何系统(如正则表达式或编程语言)的表达能力都可以通过它们可以解决的问题类型来表示或衡量.正式语言和Automata正式确定了这一措施.
此图解释了层次结构,也称为Chomsky层次结构.

这个问题可以改写为:
是否可以将所有正则表达式转换为等效的正则表达式,反过来,是否可以将所有正则表达式转换为等效的正则表达式?
如果答案(我留给您的才智)是肯定的,那么可以说glob和regexp具有相同的表达能力。
如果不是这样,那么一个能够“描述更多东西”的能力就比另一个具有更大的表现力。基本上,足以证明所有的globlob构造都具有同等的regexp构造,而至少有一个regexep不能翻译为globlob表达式以表明regexp具有更强的表达能力。(请注意,在Bash中,globbing具有多个版本(扩展的版本或未扩展的版本),而regexp也具有多种形式)
想想人类的语言。数字集比单词集具有更少的表达能力。确实,所有数字都可以用完整的单词写成,但并非所有的单词都只能用数字表示(对人类来说,我的意思是,在计算机中,所有东西都是数字)