glob-style模式和正则表达式之间有什么区别?

aam*_*mir 37 regex glob

我遇到过只支持glob样式模式并且不存在完整正则表达式支持的情况,例如redis键.我想知道两者之间的区别.另外它让我想知道,与一些软件根本不支持正则表达式的glob-style模式相比,实现正则表达式匹配算法更难?

tri*_*eee 25

传统的glob通配符支持一组非常狭窄的元字符 - *是"任何东西",?是一个任意的单个字符; Bourne shell还支持[a-z123]一组替代中的单个字符,以及[!x-z789]除列出的那些之外的任何一个.

正则表达式显然更丰富,支持重复,并且(在ERE中)交替和特定的重复次数.Perl风格的正则表达式进一步扩展了形式主义,直到编写了多本书,并且会有更多.

编程的基本正则表达式并不比glob通配符更具挑战性,而且现在,无论如何,无论如何,一个称职的程序员都会链接到现有的库.

许多更简单的系统不希望给用户带来学习正则表达式的复杂性 - 即使是基本的通配符也是向平均销售人员解释的一个挑战^ W ^ W不是全职计算机用户的人.


Aam*_*mol 11

正则表达式在命令/函数中用于文本中的模式匹配。例如在 grep 的模式参数中,或者在编程语言中。

shell 使用通配符通过通配符来匹配文件和目录名称。通配符的功能取决于 shell。例如,Bash 支持通配符,例如:

更多信息可以在这里找到