qwr*_*qwr 5 regex grep pcre gnu
GNU grep 的基本 (BRE) 和扩展 (ERE) 语法记录在https://www.gnu.org/software/grep/manual/html_node/Regular-Expressions.html,PCRE 总结在man pcresyntax,但没有明确的比较。GNU grep 的基本/扩展正则表达式和 PCRE ( ) 正则表达式有什么区别-P?
我对主要语法和功能差异的研究来自http://www.greenend.org.uk/rjk/tech/regexp.html:
.在 GNU grep 中,不匹配空字节和换行符(但与 一起使用时匹配换行符--null-data),而 Perl 则\n匹配除 之外的所有内容。[...]在 GNU grep 中定义了 POSIX 括号表达式,而 Perl 使用“字符”类。我不确定细节。请参阅http://www.greenend.org.uk/rjk/tech/regexp.html#bracketexpression?, +, {, |, (, 和)失去了它们的特殊含义;而是使用反斜杠版本\?, \+, \{, \|, \(, 和\)。” 来自https://www.gnu.org/software/grep/manual/html_node/Basic-vs-Extended.html。ERE 与 PCRE 语法匹配。\w和与和\W相同,而 Perl 使用字母数字和下划线。[[:alnum:]][^[:alnum]]\<and\>来表示单词的开头和结尾。Perl 支持更多附加功能:
re{...}?\A, \C, \d, \D, \G, \p, \P, \s, \S, \X。\Z, \z.(?#comment)(?:re)、害羞分组+修饰符(?modifiers:re)(?=re)和(?!re)、后瞻和负后瞻(?<=p)和(?<!p)(?>re)(?(cond)re)man pcresyntax