正则表达式
正则表达式的作用:方便我们在文件中快速查找/过滤到内容
正则表达式分类:
- 基础正则 (Basic RE BRE)
- 扩展正则(Extended RE ERE)
通配符与正则的区别
- 通配符:方便我们进行查找文件 (Linux下大部分命令支持)
- 正则:方便我们进行查找/过滤文件里的内容 (Linux三剑客,开发语言)
基础正则
尖角符号^ :以什么开头的行
####查找以I开头的行
[root@yiqilang ~]# grep '^I' /oldboy/oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
美元符号$:以什么结尾的行
####查找以m结尾的行
[root@yiqilang ~]# grep 'm$' /oldboy/oldboy.txt
my blog is http://oldboy.blog.51cto.com
our size is$ http://blog.oldboyedu.com
- 尖角+美元符号
^$: 空行,这一行什么都没有
####查找文件的空行
[root@yiqilang ~]# grep '^$' /oldboy/oldboy.txt -n
3:
为了看起来直观,使用了参数-n,显示行号
不过^$多用来排除空行的
点符号.:任意一个字符(单个)

查找m后面任意一个字符,空格也算一个字符
星号*:前一个字符连续出现0次或多次

点加星号.*:所有任意字符
过滤以I开头,后面是所有任意字符

撬棍符号\:转义符号或去掉符号的原有特殊含义
转义字符:\n=回车键 \t=按下tab键

echo -e 让echo命令支持转义字符
中括号[]:相当于是一个字符(每次匹配1个字符)

相当于查找u或r的行,是每次单个匹配
[^]:取反/排除

相当于排除abcd字符,过滤出不包含abcd字符的内容
扩展正则
grep命令要使用扩展正则需要使用参数:-E或直接使用egrep
加号+:前一个字符连续出现1次或多次

第一条命令是4连续出现1次或多次
第二条命令是4后面加号前面的4连续出现1次或多次,所以第二条命令不会过滤单个4开头的内容
+和[]通常一起使用

匹配4或4连续出现1次或多次
管道|:或者(在正则中表示)

相当于过滤出4或者a 字符
小括号():被括起来的内容相当于一个整体
反向引用/后向引用

相当于过滤包含oldboy或oldbey的字符串
花括号{}:连续出现指定次数
0{n,m} n表示最少连续匹配多少次 m表示最多连续匹配多少次.

{n,} n表示至少连续匹配n次,至多没有限制

{n} n表示指定匹配

问号?:前一个字符出现0次或1次

?前面一个字符出现0次或者1次.
相当于匹配8这个符号出现0次或1次,单个匹配
650

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



