Linux正则表达式-选择性操作与分组操作
2015-06-07 21:25
549 查看
选择性操作
竖线(|)字符是元字符扩展集的一部分,用于指定正则表达式的联合。如果某行匹配其中的一个正则表达式,那么它就匹配该模式。例如,正则表达式:UNIX|LINUX
将匹配包含字符串"UNIX" 或字符串"LINUX" 的行。可以指定更多的选择,例如:
UNIX|LINUX|NETBSD
使用egrep时,打印匹配这3种模式中任意一种的行。
在sed中,没有联合元字符,可以分别指定每种模式。在下面内容中,我们将考虑分组的操作,我们将看到关于这个元字符的其他示列。
分组操作
圆括号()用于对正则表达式进行分组并设置优先级。它们是元字符扩展集的一部分。假设在文本文件中公司的名称为"BigOne" 或"BigOne Computer" ,使用表达式:
BigOne(Computer)?
将匹配字符串"BigOne" 本身或后面跟有一个字符串" Computer" 的形式。同样,有些术语有时会用全拼,有时会用缩写、则可以使用:
$ egrep "Lab(oratorie)?s" mail.list
Bell Laboratories, Lucent Technologies
Bell Labs
可以使用竖线和圆括号来对选择性操作进行分组。在下面的示列中,我们使用它来指定与单词"company" 的单数或复数匹配。
compan(y|ies)
要注意,在大多数sed和grep的版本中不能对加圆括号的一组字符应用数量词,但是在egrep和awk 的所有版本中都是可以的。
参考资料:http://www.linuxawk.com/communication/455.html
竖线(|)字符是元字符扩展集的一部分,用于指定正则表达式的联合。如果某行匹配其中的一个正则表达式,那么它就匹配该模式。例如,正则表达式:UNIX|LINUX
将匹配包含字符串"UNIX" 或字符串"LINUX" 的行。可以指定更多的选择,例如:
UNIX|LINUX|NETBSD
使用egrep时,打印匹配这3种模式中任意一种的行。
在sed中,没有联合元字符,可以分别指定每种模式。在下面内容中,我们将考虑分组的操作,我们将看到关于这个元字符的其他示列。
分组操作
圆括号()用于对正则表达式进行分组并设置优先级。它们是元字符扩展集的一部分。假设在文本文件中公司的名称为"BigOne" 或"BigOne Computer" ,使用表达式:
BigOne(Computer)?
将匹配字符串"BigOne" 本身或后面跟有一个字符串" Computer" 的形式。同样,有些术语有时会用全拼,有时会用缩写、则可以使用:
$ egrep "Lab(oratorie)?s" mail.list
Bell Laboratories, Lucent Technologies
Bell Labs
可以使用竖线和圆括号来对选择性操作进行分组。在下面的示列中,我们使用它来指定与单词"company" 的单数或复数匹配。
compan(y|ies)
要注意,在大多数sed和grep的版本中不能对加圆括号的一组字符应用数量词,但是在egrep和awk 的所有版本中都是可以的。
参考资料:http://www.linuxawk.com/communication/455.html
相关文章推荐
- msql 正则表达式
- 正则表达式
- Mootools 1.2教程 正则表达式
- 批处理FINDSTR正则表达式用法实例分析
- vbs正则表达式代码
- php中看实例学正则表达式
- PHP正则表达式之定界符和原子介绍
- PHP下常用正则表达式整理
- 批处理 正则表达式(findstr) 整理
- javascript中的正则表达式使用指南
- 学习正则帮手笨狼正则练习器
- java正则表达式应用的实例代码
- ruby 正则表达式 教程
- PHP中的正则表达式函数介绍
- javascript replace方法与正则表达式
- PowerShell中使用正则表达式筛选数组实例
- 关于Perl里面正则表达式规范
- PERL 正则表达式详细说明
- JavaScript通过正则表达式实现表单验证电话号码
- 用正则表达式 动态创建/增加css style script 兼容IE firefox