《Linux Shell》笔记之正则表达式

这篇笔记介绍了正则表达式的基本概念和在Linux Shell中的应用,包括BRE和ERE两种标准及其元字符。文章通过实例展示了grep命令如何使用正则表达式,并解释了特殊字符类、匹配模式和运算符优先级。还提到了后向引用、分组和交替等进阶特性。
摘要由CSDN通过智能技术生成

 

  1. 正则表达式概念 

正则表达式的文法分为3种标准:BRE、ERE 和 ARE。其中 BER 和 ERE 属于 POSIX 标准,ARE 则是由各家定义的扩展

BRE:基本正则表达式

ERE:在BRE基础上,扩展正则表达式

什么是POSIX呢,POSIX Portable Operating System Interface 可移植操作系统接口,  (BRE, ERE)的应用。

正则表达式的基本字符匹配:特殊字符(meta character 元字符)和一般字符。

什么是元字符:特殊意义的专用字符(如"*","+","?","."等),用一个或者一组元字符代替一个或多个字符。举个例子: 元字符*用来匹配0个或多个的前一字符;而元字符. 用来匹配一个任意的一个字符

什么是一般字符:原义正常文本字符(非元字符),例如:'*grep' 匹配所有一个或多个任意字符后紧跟grep,grep就是一般字符。

 

 

  1. 常见linux命令及他们默认使用的正则表达式类型

    

       grep

        sed

           vi

    egrep

       awk

BRE

*

*

*

 

 

ERE

 

 

 

*

*

 

  • grep: 加上-E,开启ERE模式

 

 

  1. BRE和ERE 都支持的元字符

字符

BRE/ERE

模式含义

^

BRE,ERE

行或字符串的开始;如:'^abcd' 匹配所有以abcd开头的行

$

BRE,ERE

行或字符串的结束,如:'abcd$' 匹配以abcd结尾的行

.

BRE,ERE

匹配一个非换行符的字符 (1);

如:'a.b' 匹配a后接一个任意字符,然后是b,将匹配 aAb, a1b, acb, a@b等

 

如: '.b' 匹配 ab,1b,@b …等

*

BRE,ERE

匹配零个或多个正则表达式前面的字符 (0-n)

如:'ac*d' 匹配a后接零个或多个前面的字符,将匹配:ad, acd, accd, acccd …等

 

注意:星号不能放在首位, 星号前面必须有单个字符,经常我们使用 .*表示任意数目字符,但不能直接把星号放在首位如 '*d'

[…]

BRE,ERE

匹配方括号内任意一个字符(1);

如:"[Ab]cde" 匹配Abcd和abcd


连字符(-) 表示连续字符的范围;

如:"[0-9]abc"匹配abc前面的任意一个数字:0abc, 1abc, 2abc, 012abcd, 0123abcd ……

 

[a-z] 123 匹配123前面的任意一个小写母如:a123, b123, ab123, abc123

[

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值