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

 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的不同,希望大家喜欢。

时间: 2024-08-02 20:31:35

Linux正则表达式特性详解及BRE与ERE的异同点_正则表达式的相关文章

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

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)任意字符.

linux正则表达式awk详解_正则表达式

awk和sed一样是流式编辑器,它也是针对文档中的行来操作的,一行一行的去执行.awk比sed更加强大,它能做到sed能做到的,同样也能做到sed不能做到的.awk常用来分段: awk不用加任何参数就可以实现 + ? * .  | 这些特殊符号: 1.截取文档中的某个段 [root@yonglinux ~]# head -n2 passwd |awk -F: '{print $1}' root bin [root@yonglinux ~]# head -n2 passwd |awk -F: '{

javascript中的正则表达式使用详解_javascript技巧

[1]定义:正则又叫规则或模式,是一个强大的字符串匹配工具,在javascript中是一个对象 [2]特性: [2.1]贪婪性,匹配最长的 [2.2]懒惰性,不设置/g,则只匹配第1个 [3]两种写法: [3.1]perl写法(使用字面量形式): var expression = /pattern/flags; e.g. var pattern = /a/i;//匹配字符串中所有'a'的实例 [3.1.1]三个标志flags [a]g:表示全局模式(global) [b]i:表示不区分大小写(i

Linux ftp命令详解 Linux ftp命令怎么用

FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身. 语法 ftp [-dignv][主机名称或IP地址] 参数: -d 详细显示指令执行过程,便于排错或分析程序执行的情形. -i 关闭互动模式,不询问任何问题. -g 关闭本地主机文件名称支持特殊字符的扩充特性. -n 不使用自动登陆. -v 显示指令执行过程. 实例 例如使用ftp命令匿名登录ftp.kernel.org服务器,该服务是Linux 内核的官方服务器,可以使用如下命令: ftp ftp.kernel.

Linux mtools命令详解 Linux mtools命令怎么用

mtools为MS-DOS文件系统的工具程序,可模拟许多MS-DOS的指令.这些指令都是mtools的符号连接,因此会有一些共同的特性. 语法 mtools 参数说明: -a 长文件名重复时自动更改目标文件的长文件名. -A 短文件名重复但长文件名不同时自动更改目标文件的短文件名. -o 长文件名重复时,将目标文件覆盖现有的文件. -O 短文件名重复但长文件名不同时,将目标文件覆盖现有的文件. -r 长文件名重复时,要求用户更改目标文件的长文件名. -R 短文件名重复但长文件名不同时,要求用户更

linux top命令详解(转)

linux top命令详解(转) top命令和ps命令的基本作用是相同的,显示系统当前的进程和其它状况:但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如? 前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最"敏感"的任务列表.该命令可以按CPU使用.内存使用.执行时间对任务进行排序:而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.在后面的介绍中将把命令参数

Laravel 5.0 发布 新版本特性详解

 这篇文章主要介绍了Laravel 5.0 发布 新版本特性详解,本文讲解了目录结构.Contracts.路由缓存.路由中间.控制器方法注入.认证脚手架等新特性,需要的朋友可以参考下     译注: 期待 Laravel 5.0 已经很久很久了, 之前跳票说要到今年一月份发布. 从一月份就一直在刷新官网和博客, 始终没有更新的消息, 前几天终于看到官网文档切换到了 5.0 版. 新版本带来了众多令人激动的新特性, 尤其是定时任务队列和表单请求两个特性, 光看一下更新说明中的简单介绍都忍不住要上手

正则表达式使用详解(2)

在对正则表达式有了较为全面的了解之后,我们就来看一下如何在Perl,PHP,以及JavaScript中使用正则表达式. 通常,Perl中正则表达式的使用格式如下: operator / regular-expression / string-to-replace / modifiers 运算符一项可以是m或s,分别代表匹配运算和替换运算. 其中,正则表达式一项是将要进行匹配或替换操作的模式,可以由任意字符,元字符,或定位符等组成.替换字符串一项是使用s运算符时,对查找到的模式匹配对象进行替换的字

Linux账户管理详解

当用户登陆Linux系统时,Linux将做如下检查: 1)在/etc/passwd文件里匹配输入的用户名,获取该用户名的UID和GID(其中GID和/etc/group关联) .Home目录和Shell设置 2)在/etc/shadow里核对该用户的密码 /etc/passwd文件结构 这个文件的每一行代表一个账号,如下所示: oracle:x:501:501::/home/oracle:/bin/bash 1. 用户名 2. 密码:早期的密码放在该字段,但如今的密码已单独放在/etc/shad