4、shell正则表达式


shell编程正则表达式

shell编程正则表达式 1

1. 正则表达式与通配符的区别 2

1.1. 正则表达式(Regular Expression)用来在文件中匹配符合条件的字符串(常用命令grep 、awk、sed),通配符用来匹配符合条件的文件名(常用的命令find、ls、cp) 2

1.2. 基础正则 grep sed awk 2

1.3. 扩展正则 egrep sed -r awk 2

2. 正则表达式 2

2.1. 基础正则元字符: 2

2.2. 扩展正则: 7

3. 正则例题 10

3.1. 过滤邮箱 10

3.2. 过滤IP 11

正则表达式与通配符的区别

正则表达式(Regular Expression)用来在文件中匹配符合条件的字符串(常用命令grep 、awk、sed),通配符用来匹配符合条件的文件名(常用的命令find、ls、cp)

基础正则 grep sed awk

扩展正则 egrep sed -r awk

正则表达式

基础正则元字符:

* 匹配前一个字符0次或任意多次

常用实例:若要查找said 和saaaid,此时有限位符,须使用saa*id

4、shell正则表达式

. 匹配除了换行符外任意一字符

^匹配行首

$ 匹配行尾

^$匹配空行(行首行尾啥都没有,一般与-v配合)

[]匹配括号中任意一个字符

grep '[^字符]' 匹配除了括号内容之外的所有字符

4、shell正则表达式

\转义符,用于取消特殊符号的含义

例子:匹配以“.”结尾的行 grep "\.$"(此时.有其原先的含义但被转义符变为普通字符)

4、shell正则表达式

4、shell正则表达式

[]匹配括号中任意一个字符,[0-9]为匹配任意一个数字,[A-Za-z]为匹配任意一个字母 [a-z][0-9]意为匹配小写字和一位数字构成的两位字符 [0-9a-zA-Z]为匹配任意大小写字母和数字

4、shell正则表达式

4、shell正则表达式

基础正则匹配前一个字符出现次数范围时大括号前要加转义符(建议使用扩展正则)

\{n\}

表示其前面的字符恰好出现n次,例如[0-9]\{4\} 匹配4位数字,[1][2-8][0-9]\{9\}匹配手机号码

\{n,\}

表示其前面的字符出现不小于n次,例如[0-9]\{2,\}表示2位及以上数字

\{n,m\}

表示其前面字符至少出现n次,最多出现m次,例如[a-z]\{6,8\}匹配6-8位的小写字母

\{,m\}

匹配前一个字符字符最多出现m次

扩展正则:

+ 前一个字符匹配一次或任意多次

?匹配前一个字符0次或1次【?* +范围依次向右】

()分组,匹配其整体为一个字符,及模式单元,可以理解为由多个单个字符组成的大字符

例如(dog)会匹配dog dogdog dogdogdog,但hello(cat|dog)会匹配hello cat及hello dog

4、shell正则表达式

| 匹配两个或多分支选择

4、shell正则表达式

4、shell正则表达式

当然也包括{n} {n,m} {n,} {,m}

例题:

4、shell正则表达式

4、shell正则表达式

4、shell正则表达式

4、shell正则表达式

4、shell正则表达式

正则例题

过滤邮箱

4、shell正则表达式

4、shell正则表达式

{1,3} 1-3遍,扩展正则写法

过滤IP

思路

百位 十位 个位

0 0-9 0-9

1 0-9 0-9

2 0-4 0-9

2 5 0-5

4、shell正则表达式

4、shell正则表达式

发布者:LJH,转发请注明出处:https://www.ljh.cool/35203.html

(0)
上一篇 2023年4月5日 下午10:40
下一篇 2023年4月5日 下午10:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注