整则表达式分类

 

 

POSIX 规范

  Portable Operating System Interface for uniX
  定义了 UNIX 操作系统应当支持的功能

  包括:

BRE(Basic Regular Expression,基本型正则表达式)
GNU 也对 BRE 做了扩展也支持 『(』、『)』、『{』、『}』、『+』、『?』、『|』 但是需要转义
命令:grep、vi、sed

ERE(Extended Regular Express,扩展型正则表达式)
虽然 BRE 名为“基本”而 ERE 名为“扩展”,但 ERE 并不要求兼容 BRE 的语法,而是自成一体。因此其中的元字符不用转义(在元字符之前添加反斜线会取消其特殊含义)
『(』、『)』、『{』、『}』、『+』、『?』、『|』 不需要转义
命令:egrep、awk

 

几种 POSIX 流派的说明

流派

说明

工具

BRE

(、)、{、}都必须转义使用,不支持 +、?、|

grep、sed、vi(但 vi 支持这些多选结构和反向引用)

GNU BRE

(、)、{、}、+、?、|都必须转义使用

GNU grep、GNU sed

ERE

元字符不必转义,+、?、(、)、{、}、|可以直接使用,\1、\2 的支持不确定

egrep、awk

GNU ERE

元字符不必转义,+、?、(、)、{、}、|可以直接使用,支持\1、\2

grep –E、GNU awk

 

 

常用 Linux/Unix 工具中的表示法

    

PCRE 记法

vi/vim

grep

awk

sed

*

*

*

*

*

+

\+

\+

+

\+

?

\=

\?

?

\?

{m,n}

\{m,n}

\{m,n\}

{m,n}

\{m,n\}

\b *

\< \>

\< \>

\< \>

\y \< \>

(…|…)

…‖……‖…

…‖……‖…

(…|…)

(…|…)

(…)

……

……

(…)

(…)

\1 \2

\1 \2

\1 \2

不支持

\1 \2

 

 

 

 

 

 

 

https://www.infoq.cn/article/2011/07/regular-expressions-6-POSIX

https://www.cnblogs.com/lixuwu/p/7816335.html

上一篇:安装“python-snappy”遇到“error: command 'x86_64-linux-gnu-gcc' failed with exit status 1”


下一篇:Linux起源