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 默认正则