Linux正则表达式和通配符

正则表达式

正则表达式主要是用在对文件内容的匹配上,通配符主要用在对文件名的匹配上
“.”:用于匹配除换行符之外的任意一个字符,如:r.t匹配rot,rut,但是不能匹配root,需要使用r…t,r…t可以使用r t(中间是空格),grep ‘r…t’ pa.log
"":用于匹配前一个字符0次或者任意多次,如:ab,可以匹配a,ab,abb等,“”经常和“.”在一起使用,比如“.”代表任意长度的不包含换行的字符。grep ‘r.*t’ a.log
{n}:匹配前面的字符n次,grep ‘ro{2}t’ a.log,匹配包含root的行
{n,}:匹配前面的字符n次及以上,grep ‘ro{0,}t’ a.log
{n,m}:匹配前面的字符n到m次
“^”:匹配开头的字符,grep ’^root’ a.log
"KaTeX parse error: Expected group after '^' at position 11: ":用于匹配尾部,“^̲”代表该行为空,grep ‘^r.*h$’ a.log用于匹配以r开头,中间任意字符,以h结尾的行。
“[]”:代表方括号内出现的任一字符,方括号中加入“”代表取反,匹配手机号:'1[38][0-9]{9}’
“<”:代表单词的左边界,‘<hello’,代表以hello开头
“>”:代表单词的右边界,‘hello>’,代表以hello结尾
“<>”:精确匹配,’<hello>’,echo “hello” | grep ‘<hello>’
“\d”:匹配一个数字,等价[0-9],echo 123 | grep [0-9],echo 123 | grep -P ‘\d’
“\w”:匹配字母,数字,下划线,等价于[A-Za-z0-9]
“\W”:匹配非字母,非数字,非下划线,等价于[^A-Za-z0-9]
“?”:匹配前一个字符0次或者1次,‘ro?t’ 匹配rt,rot
“+”:匹配前一个字符1次及以上,'ro+t’匹配rot,root
“|”:或的意思
区号是3位的固定电话的正则表达式
^0[0-9]{2}-[0-9]{8}
区号是4位的固定电话的正则表达式
^0[0-9]{3}-[0-9]{8}
两种区号的固定电话号码可以如下写
^0[0-9]{2,3}-[0-9]{8}
使用 | 符号也可以
^0[0-9]{2}-[0-9]{8} | ^0[0-9]{3}-[0-9]{8}
“()”:通常需要和“|”联合使用,用于枚举一系列可以替换的字符,如固定电话区号和电话之间可能是 - ,或者是一个空格,可以用表达式:^0[0-9]{2,3}(-| )[0-9]{8},也可以用[]来匹配:^0[0-9]{2,3}[\ -][0-9]{8}
匹配hard,hold,hood,表达式:h(ar|oo|ol)d

通配符:

“*”:代表0个或者多个字符 ls -l *.doc
“?”:代表任意一个字符 ls -l A?.doc 代表以A开头,只有两个字母的文件名,以.doc结尾的文件
“{}”:可拥有匹配所有括号内包含的以逗号隔开的字符,ls -l {A,B,C}.doc,ls -l [A-C].doc
”和“!”:[A]或者[!A]代表不是A

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值