Linux之shell中的正则表达式

shell中的正则表达式

1.正则表达式是什么

在这里插入图片描述

  • 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式
  • 就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑

2.为什么要学习正则表达式

在企业中,我们每天做的linux运维工作中,时刻都会面对大量带有字符串的文本配置、程序、命令输出及日志文件等,而我们经常会有迫切的需要从大量的字符串内容中查找符合工作需要的特定字符串,这就要靠正则表达式,因此,可以说正则表达式就是为过滤这样字符串的需求而生的。

3.正则表达式处理数据过程

在这里插入图片描述

  • 实际上正则表达式就是完成过滤工作,将不满足正则表达式定义的字符、数据拒绝掉。
    正则表达式就像是一个漏斗。

2.*符号

* 匹配前面一个普通字符的0次或多次重复

hel*o  helo  hello  hellllllo

3..符号

. 匹配任意一个字符

...aa.	表示前三个字符可以为任意 第四个和四五个字符要为a 第六个字符可以为任意

注意:任意字符可以是一个空格

4.^符号

^ 用于匹配行首 表示行首的字符是^字符后面的那个字符

^hello	表示匹配以hello开头的行
^...roo* 表示行首的前三个字符为任意字符 第四到六的字符为roo 第七个字符开始可以重复匹配

5.$符号

$ 匹配行尾 $放在匹配字符之后

hello$ 表示匹配以hello结尾的行

空行的表示:^$ 简单理解就是一开始就结束的行

6.[ ]符号

[ ]匹配字符集合
支持穷举方法列出字符集合的所有元素
也支持使用 - 符号表示字符集合范围表明字符集合范围从-左边字符开始,到-右边字符结束

[0123456789] [0-9] 匹配任何一个数字
匹配字母:[a-z]	[A-Z]	[c-q]
匹配任意英文单词:[A-Za-z][A-Za-z]*
注意:^符号在[]内使用时,就不表示匹配行首,而表示取反
例如:[^c-q] 匹配在c-q范围外的字符

7.\符号

\ 转义符号,用于屏蔽一个元字符的特殊意义

8.\<\>符号

\<\> 精确匹配符号,该符号利用\屏蔽<>符号

\<the\>	精确匹配the 而不匹配包含the的单词 比如there them

9.\{\}符号

\{\} 与*符号用法类似,都表示前一个字符的重复,但此符号可以指定重复次数
\{n\} 匹配前面字符出现n次
\{n,\} 匹配前面字符出现至少n次
\{n,m\} 匹配前面字符出现n~m次

NI\{3\}C NIIIIC
[a-z]\{6\}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值