我最近与Ghoti进行了友好的辩论,认为在回答这个问题的评论中,正则表达式是什么构成的。我声称以下是一个正则表达式:
`[Rr]eading[Tt]est[Dd]ata`
Ghoti不同意,声称它是文件文件。维基百科上的全局页面声称(强调我的):
Globs不包含Kleene星的语法,该语法允许多次重复表达式的前一部分;因此,它们不被视为正则表达式,可以在任何给定的有限字母上描述更大的一组正则语言。
但是,此声明没有引用,表明这只是特定维基百科编辑的意见。
该单一UNIX®规范,版本2,指出一个基本的正则表达式(BRE),甚至可以是单个字符:
普通字符是与之匹配的BRE:受支持的字符集中的任何字符,但BRE特殊字符中列出的BRE特殊字符除外。
那么,* nix世界中正则表达式的定义是什么,该定义是否排除文件glob?
grep
,sed
和awk
。Vim和Perl一样使用自己的品种。