我已经掌握了grep和regex的诀窍,但我对不同的选项感到困惑。
grep --help | grep -i "reg.*ex"
-E, --extended-regexp PATTERN is an extended regular expression (ERE)
-G, --basic-regexp PATTERN is a basic regular expression (BRE)
-P, --perl-regexp PATTERN is a Perl regular expression我对正则表达式有大致的了解,但我经常发现自己对基本知识(例如,当它实际上需要‘.*’时使用'*‘)感到困惑,我把这归咎于不知道正则表达式类型之间的差异(ERE,BRE,Perl regex)。
有详细的解释吗?
发布于 2018-02-28 10:54:52
回答关于*的具体问题。
正则表达式(任意类型)中的*特殊字符作用于前面的表达式。它允许与前一个表达式的零或多个匹配。因此,正则表达式.*匹配任何字符串,无论它是否为空。
*文件名全局字符匹配任何(可能为空)字符串。
正则表达式不是文件名全局模式(反之亦然)。这种特殊的区别是正则表达式和全局模式之间的区别,而不是不同类型正则表达式之间的区别。
https://unix.stackexchange.com/questions/427125
复制相似问题