1.1. 正则表达式(Regular Expression)用来在文件中匹配符合条件的字符串(常用命令grep 、awk、sed),通配符用来匹配符合条件的文件名(常用的命令find、ls、cp) 2
正则表达式与通配符的区别
正则表达式(Regular Expression)用来在文件中匹配符合条件的字符串(常用命令grep 、awk、sed),通配符用来匹配符合条件的文件名(常用的命令find、ls、cp)
基础正则 grep sed awk
扩展正则 egrep sed -r awk
正则表达式
基础正则元字符:
* 匹配前一个字符0次或任意多次
常用实例:若要查找said 和saaaid,此时有限位符,须使用saa*id
. 匹配除了换行符外任意一字符
^匹配行首
$ 匹配行尾
^$匹配空行(行首行尾啥都没有,一般与-v配合)
[]匹配括号中任意一个字符
grep '[^字符]' 匹配除了括号内容之外的所有字符
\转义符,用于取消特殊符号的含义
例子:匹配以“.”结尾的行 grep "\.$"(此时.有其原先的含义但被转义符变为普通字符)
[]匹配括号中任意一个字符,[0-9]为匹配任意一个数字,[A-Za-z]为匹配任意一个字母 [a-z][0-9]意为匹配小写字和一位数字构成的两位字符 [0-9a-zA-Z]为匹配任意大小写字母和数字
基础正则匹配前一个字符出现次数范围时大括号前要加转义符(建议使用扩展正则)
\{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
| 匹配两个或多分支选择
当然也包括{n} {n,m} {n,} {,m}
例题:
正则例题
过滤邮箱
{1,3} 1-3遍,扩展正则写法
过滤IP
思路
百位 十位 个位
0 0-9 0-9
1 0-9 0-9
2 0-4 0-9
2 5 0-5
发布者:LJH,转发请注明出处:https://www.ljh.cool/35203.html