首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNU grep的基本/扩展表达式与PCRE (`-P`)正则表达式有什么不同?

GNU grep的基本/扩展表达式与PCRE (`-P`)正则表达式有什么不同?
EN

Stack Overflow用户
提问于 2021-06-11 21:46:52
回答 1查看 967关注 0票数 3

grep的基本(BRE)和扩展(ERE)语法记录在节点/正则-Expressions.html中,PCRE在man pcresyntax上进行了总结,但没有明确的比较。grep的基本/扩展表达式与PCRE (-P)正则表达式有什么不同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-11 21:46:52

我对http://www.greenend.org.uk/rjk/tech/regexp.html主要语法和功能差异的研究

  • grep中的.不匹配空字节换行 (但与--null-data一起使用时确实匹配换行符),而Perl则匹配除\n之外的所有东西。
  • grep中的[...]定义POSIX括号表达式,而Perl使用“字符”类。我对细节不太确定。请参阅http://www.greenend.org.uk/rjk/tech/regexp.html#bracketexpression
  • 在基本正则表达式中,元字符?+{|()失去了其特殊意义;相反,请使用反斜杠的版本\?\+\{\|\(\)。来自node/Basic-vs-Extended.html。ERE与PCRE语法匹配。
  • grep \w\W[[:alnum:]][^[:alnum]]相同,而Perl使用字母数字和下划线。
  • grep有\<\>,用于开始和结束word。

Perl支持更多的附加功能:

  • 语法为re{...}?的“非贪婪{}”
  • 其他锚点和字符类型为\A\C\d\D\G\p\P\s\S\X\Z\z.
  • (?#comment)
  • (?:re)分组,shy分组+修饰符(?modifiers:re)
  • 前瞻性和负前瞻性(?=re)(?!re),查找和负回顾(?<=p)(?<!p)
  • 原子群(?>re)
  • 条件表达式(?(cond)re)
  • ..。更多信息,请参见man pcresyntax
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67943781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档