正则符号详细说明"/>
正则符号详细说明
正则符号详细说明
(一)正则符号作用说明
作用:方便匹配找出文件中的内容信息
(二)正则表达符号分类
基础正则表达式(basic regular expression) eg:^ $ . * [] [^]
扩展正则表达式(extended regular expression) eg:| + () {} ?
---扩展正则表达式适用于egrep /sed -r
(三)正则符号注意事项
1)按照每行信息进行过滤处理
2)注意正则表达符号禁止中文
3)附上颜色信息进行正则过滤 --color=auto/--color
PS:centos7系统egrep命令默认带颜色--alias egrep='egrep --color=auto'
(四)基础正则符号说明
1)尖角符号:^ 表示以什么字符开头的一行信息
2)美元符号:$ 表示以什么字符结尾的一行信息
3)空行符号:^$ 表示过滤空行信息 -v 取反
4)点号符号:. 表示匹配任意一个且只有一个字符
grep -o “.” file.txt
-o 表示显示grep命令执行过程
5)星号符号:* 表示前一个字符出现0次或者多次
6)点星符号:.* 表示匹配任意所有信息(包含空行)
^.*xxx 表示以任意字符开头xxx结尾(贪婪匹配)
^xxx.*xxx$ 表示以xxx开头,xxx结尾的所有行
7)转义符号:\
1.表示还原字符的本来意思
‘\.$’ 表示查询出以点结尾的行信息
2.转移符号的常见用法汇总
\n 表示匹配一个换行符号
\r 表示匹配一个换行符号
\t 表示匹配一个制表符号
8)括号符号:[] 表示包含括号中信息
[abc] 表示匹配包含a或b或c信息的字符
^[abc] 表示匹配以a或b或c字符开头的行信息
[a-zA-Z0-9] 找出所有包含字母和数字的行信息
[a-Z] 表示匹配包含字母的行信息
^[a-z].*[.!]$ 表示以小写字母开头并且以.或者!结尾的行信息
9)排除符号:[^] 表示排除括号中信息
[^abc] 表示排除包含a或b或c信息的字符
^[^abc] 表示排除包含a或b或c信息开头的行
(五)扩展正则符号说明
1)加号符号:+
1.表示前一个字符连续出现1次或者多次以上
egrep “0+” file 表示取出数字0字符,以及连续的多个数字0字符
2.补充说明:一般加号符号经常是与中括号使用,可以匹配出多个不同的连续字符
2)竖线符号:|
表示匹配多个满足条件的信息(或者)
3)括号符号:()
- 表示匹配一个整体信息 egrep “b(o|e)y” file 表示过滤指定信息
- 表示后项应用前项
sed -r ‘s#(.*)#<\1>#g’ 利用sed命令实现后项应用前项
sed -r ‘s#([0-9]+)#<\1><\2>#g’ 利用sed命令实现后项应用前项
sed -r ‘s#(..)(..)(..)#<\1><\2>#g’ 利用sed命令实现后项应用前项
4)括号符号:{}
表示定义前面字符出现次数
X{n,m} 表示前一个字符至少连续出现n次,最多出现m次
X{n} 表示前一个字符正好连续出现n次
X{n,}表示前一个字符至少连续出现n次,最多出现多少次不限
X{,m}表示前一个字符至少出现0次,最多出现m次
5)问号符号:?
表示定义前面字符出现0次或1次
(六)正则符号使用问题
1)问题:尖角符号和星号符号区别? ^d和d*
2)问题:星号符号匹配不存在信息? grep ‘’
3)问题:过滤时是否使用引号区别? egrep [ab]{1,} file.txt
(七)正则符号特性说明
1)正则表达符号具有贪婪特性
2)扩展正则转换基础正则方法 grep ‘go\+d’
总结:
* 匹配前一个字符出现0次或者多次
+ 匹配前一个字符出现1次或者多次
{} 匹配前一个字符指定出现多少次,至少0次
? 匹配前一个字符出现0次或者1次
更多推荐
正则符号详细说明
发布评论