shell中的正则表达式
1.正则表达式
linux shell以一串字符作为表达式向系统传达意思,元字符是用来解释字符表达意义的字符。简单来说:元字符就是描述字符的字符,它用于对字符表达式的内容,转化以及各种操作信息进行描述,正则表达式是由一串字符和元字符构成的字符串,它的功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合
正则表达式数据处理过程:
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\}