Skip to content

linux 正则

前言

由于历史原因,正则表达式分为了两个流派,分别是 POSIX 流派和 PCRE 流派。其中,POSIX 流派有两个标准,分别是 BRE 标准和 ERE 标准 目前,Linux 和 Mac 在原生集成 GUN 套件(例如 grep 命令)时,遵循了 POSIX 标准,并弱化了 GNU BRE 和 GNU ERE 之间的区别。

GNU BRE 和 GNU ERE 的差别主要体现在一些语法字符是否需要转义上

各种标准区别

BRE

echo "addf" | grep 'd\{1,3\}'

ERE

echo "addf" | grep -E 'd{1,3}'
echo  "11d23a" | grep -E '[[:digit:]]+'

PCRE

echo  "11d23a" | grep -P '\d+'

当代程序基本使用此标准, eg

  • vim
  • golang 默认正则

Comments