Linux正则表达式特性详解及BRE与ERE的异同点

 更新时间:2015年10月21日 14:20:09   投稿:mrr  
本篇文章给大家介绍linux正则表达式特性及BRE与ERE的不同,Linux正则表达式(Regular Expression)主要遵从POSIX BRE或者POSIX ERE标准,对linux正则表达式感兴趣的朋友可以参考下本篇文章

 Linux正则表达式(Regular Expression)主要遵从POSIX BRE或者POSIX ERE标准。什么是POSIX呢,POSIX Portable Operating System Interface 可移植操作系统接口ERE是BRE的扩展版本,具体更强的处理能力,并增加了一些元字符(metacharactor)。

  BRE主要的能力集有:

  1) 普通字符(Literal text),如a,b,c等

  2)非打印字符,包括TAB,回车,换行,回车换行(WINDOWS)

  3)任意字符.

  4)字符集,包括单词型字符([[:alnum:]]),非单词型字符([^[:alnum:]]),数字([[:digit:]]),非数字([^[:alnum:]]),空格、TAB、换行等空白字符([[:space:]])以及非空白字符([^[:space:]])

  5)边缘匹配符,不管是BRE还是ERE,都只支持匹配行首或行尾,不像perl,还可以匹配单词首和单词尾

  6)匹配重复次数(Quantifier/Repetition)

  7)分组及后向引用

  8)多项匹配(Alteration),使用元字符|,该特性只ERE支持,BRE没有此功能

  BRE与ERE似乎对ASCII和UNICODE是否都支持尚待确认;

  正前向查找和负前向查找不支持;

  正后向查找和负后向查找不支持;

  BRE与ERE在能力上区别仅在多项匹配的能力上,其他方面没有大的差别,主要的区别体现在元字符上。

  BRE只定义了4组元字符:

  []      用于在多个字符中选定一个字符进行匹配,[]内可以有-以示范围,但-本身不是元字符

  .        用于匹配任意字符

  ^      用于匹配时表示“非”的含义,还有一个用法是匹配行首

  $      用于匹配行尾

  ERE在此基础上增加了3组元字符的定义:

  {}      用于表示重复匹配的次数。BRE中只将{}当作普通字符对待,要使用此功能必须加\进行转义,即“\{\}”

  ()      用于分组。BRE中只将()当作普通字符对待,要使用此功能必须加\进行转义,即“\(\)”

  |      完全为ERE新增的多项匹配能力定义的,BRE无多项匹配能力,只将|作普通字符对待

以上内容是小编给大家介绍的Linux正则表达式特性详解及BRE与ERE的不同,希望大家喜欢。

相关文章

  • 正则表达式在网页处理中的应用四则

    正则表达式在网页处理中的应用四则

    正则表达式(Regular Expression)为字符串模式匹配提供了一种高效、方便的方法。几乎所有高级语言都提供了对正则表达式的支持,或者提供了现成的代码库供调用。本文以ASP环境中常见的处理任务为例,介绍正则表达式的应用技巧。
    2008-04-04
  • 正确使用带有"g"标记的javascript正则表达式

    正确使用带有"g"标记的javascript正则表达式

    javascript正则表达式是对字符串执行模式匹配的强大工具。正确使用它会给我们的工作带来很大的便利。可是有些地方由于我们没有太注意或者根本不理解,就会遇到不可预料的麻烦。
    2009-05-05
  • PHP html标签正则替换并可自定义正则规则

    PHP html标签正则替换并可自定义正则规则

    PHP有个去除HTML标签的函数strip_tags,不过对于某些特殊符号不好使,下面这个函数的功能非常强大,同时用户还可以根据自己的需要进行正则替换.
    2010-05-05
  • VS里的正则表达式的替换技巧

    VS里的正则表达式的替换技巧

    这篇文章主要介绍了VS里的正则表达式的替换技巧,需要的朋友可以参考下
    2016-05-05
  • 利用正则表达式将字符串分组示例代码

    利用正则表达式将字符串分组示例代码

    这篇文章主要给大家介绍了关于利用正则表达式将字符串分组的相关资料,文中分别介绍了利用itertools模块的groupby()方法和利用正则表达式是如何实现的,通过示例代码介绍的非常详细,需要的朋友们下面来一起看看吧。
    2017-08-08
  • bash 中用于grep的正则表达式

    bash 中用于grep的正则表达式

    正则表达式是一类用于匹配文本的表达方式,常用于grep命令中表达检索条件。接下来通过本文给大家介绍bash 中用于grep的正则表达式,需要的朋友参考下吧
    2017-03-03
  • 比较实用的正则表达式学习笔记

    比较实用的正则表达式学习笔记

    最近在学习正则,一些比较有用的东西怕忘记,记下来,比较乱,想一条记录一条
    2008-08-08
  • DW 查找某字符串前的所有字符的正则表达式

    DW 查找某字符串前的所有字符的正则表达式

    我使用DW 这个所见所得的编辑器来写html时,喜欢写上注释,如<!-- header --> 等等的注释,在一次比较大的改动时,需要批量查找替换,为了批量操作,于是我写了一个正则表达式来进行处理
    2012-10-10
  • 正则表达式实现匹配连续数字的方法

    正则表达式实现匹配连续数字的方法

    我这两天刚刚学正则表达式。我觉的正则对连续的字符匹配很简单,但是对连续的一段数字匹配就不是很好。正好最近有朋友问了匹配连续数字的正则,就帮忙写了一下,算是当作温习一下吧。下面这篇文章就主要介绍了正则表达式实现匹配连续数字的方法。
    2017-01-01
  • python 正则表达式 反斜杠(/)的麻烦和陷阱

    python 正则表达式 反斜杠(/)的麻烦和陷阱

    这里是一点小心得。 由于正则表达式使用反斜杠来转义特殊字符,而python自身处理字符串时,反斜杠也是用于转义字符,这样就产生了一个双重转换的问题
    2009-08-08

最新评论