正则表达式 流派(flavor)及差异简介

        在使用正则表达式的过程中,大家可能会注意到不同的工具里边正则表达式的语法貌似有些不一样,不同的语言支持的正则表达式语法也会有一些不同,其实出现这些情况的根本原因就是存在几大流派,它们之间存在一些差别。

一、流派介绍

        正则表达式简单来说有三大流派:PCREBREERE

        PCRE(Perl Compatible Regular Expression):可以说是正则表达式的老前辈,它是从Perl衍生出来的一个显赫流派,\d \w \s 等表示法就是它的特征;

        BRE(Basic Regular Expression)POSIX规范的正则表达式之一,grepvised都属于这一派,它显著的特征就是( ) { } 这几个括号元字符必须经过转义才具有特殊含义,不支持 + ? | 等元字符,随着时间发展,后来又出现了GNU BREGNU BRE支持上边这些字符,但是也必须都经过转义才能有特殊含义;

        ERE(Extended Regular Express):也是POSIX规范的正则表达式之一,egrep awk都属于这一派,( ) { }+ ? |等元字符可以直接使用不需要转义,这个流派后来也出现了GNU ERE,在之前的基础上添加了支持\1 \2等。

二、各语言及工具支持情况介绍

        下边的表格显示了Linux下常见工具的正则表达式表示法对比:

PCRE

vi/vim

GNU grep

awk

GNU sed

*

*

*

*

*

+

\+

\+

+

\+

?

\=

\?

?

\?

{m,n}

\{m,n}

\{m,n\}

{m,n}

\{m,n\}

\b *

\< \>

\< \>

\< \>

\y \< \>

(|)

\(\|\)

\(\|\)

(|)

(|)

()

\(\)

\(\)

()

()

        Javaperljsvbphp等语言中也提供正则表达式相关的模块,他们具体采用的那种流派还未具体去调查,可以再进一步研究一下。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值