文章目录
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\}
1825

被折叠的 条评论
为什么被折叠?



