整则表达式分类

Posted siqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整则表达式分类相关的知识,希望对你有一定的参考价值。

 

 

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}

 *

< >

< >

< >

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

以上是关于整则表达式分类的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式对服务地址的各个部分进行分类?

Regular ExpressionRE分类及案例

Java8新特性——lambda表达式.(案例:完全数分类)

R语言进行变量编码(recode):把dataframe中连续变量基于条件表达式转化为多个类别的离散变量(分类变量)使用attach函数绑定数据

php PHP - Wordpress - 搜索 - wordpress自定义搜索功能,包含ACF /高级自定义字段和分类法以及拆分表达式

php PHP - Wordpress - 搜索 - wordpress自定义搜索功能,包含ACF /高级自定义字段和分类法以及拆分表达式