【Shell】正则表达式

【正则表达式】
正则表达式:Regular Expression(RE),是一种字符匹配模式,使用元字符来表达某一类的字符串。

位置标记

正则元字符含义举例
^行首定位符^aux能够匹配以aux起始的行
$行尾定位符aux$能够匹配以aux结尾的行

标识符

正则元字符含义举例
A字符正则表达式必须匹配该字符A能够匹配字符A
.匹配任意一个字符hack. 能够匹配hackl和hacki,但不能匹配hackl2或是hackil这种,它只能匹配单个字符
[]匹配中括号内的任意一个字符,中括号内可以是一个字符组或是字符范围coo[kl]能够匹配cook或是cool,[0-9]匹配任意单个数字
[^]匹配不在中括号内的任意一个字符,中括号内可以是一个字符组或是字符范围9[^01]能够匹配92和93等,但是不匹配91和90;A[^0-9]匹配A以及随后除数字外的任意单个字符
[:space:]匹配空白字符,包括空格,tabsed ‘s/[[:space:]]//g’ file
[:digit:]任意单个数字
[:lower:]任意单个小写字母
[:upper:]任意单个大写字符
[:alpha:]任意单个字母
[:alnum:]任意单个字母和数字
[:blank:]任意单个空格和tab
[:punct:]任意单个标点符号
[:cntrl:]任意单个控制符
[:graph:]任意单个能显示的符号
[:print:]任意单个可打印符号
[:xdigit:]任意单个十六进制字符

数量修饰符

正则元字符含义举例
?匹配之前的项1次或是0次colou?r能够匹配color或是colour
+匹配之前的项1次或是多次rollno-9+能够匹配rollno-9或是rollno-9…
*匹配之前的项0次或是多次co*l能够匹配cl、col和coo…l
{n}匹配之前的项n次[0-9]{3}能够匹配任意的三位数
{n,}之前的项至少需要匹配n次[0-9]{2,}能够匹配任意一个两位数或是更多位数
{n,m}之前的项所必须匹配的最小次数与最大次数[0-9]{2,5}能够匹配两位数到五位数之间的任意一个数字

其他

正则元字符含义举例
()将括号内的内容视为一个整体ma(tri)?x能够匹配max或matrix
|指定了一种选择结构,可以匹配 | 两边任意一项oct (1st | 2nd)能够匹配oct 1st或是oct 2nd
\转义字符a\.b能够匹配a.b,但不能匹配ajb,因为 \ 忽略了 . 的特殊意义
root@bras-01:/tmp# cat test.txt
aabbcc115599
ccddmm123456789
www.12356abc.com
www.baidu.com
www.12306.com
192.168.1.1
192.168.1.2
192.168.1.255
192.168.1.254
root@bras-01:/tmp# grep ^www /tmp/test.txt
www.12356abc.com
www.baidu.com
www.12306.com
root@bras-01:/tmp# grep com$ /tmp/test.txt
www.12356abc.com
www.baidu.com
www.12306.com
root@bras-01:/tmp# grep -E ^[a-z]+\.[0-9]+\.[a-z]+$ /tmp/test.txt
www.12306.com
root@bras-01:/tmp# grep -E ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ /tmp/test.txt
192.168.1.1
192.168.1.2
192.168.1.255
192.168.1.254
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值