一篇文章让你明白正则表达式

> 一篇文章让你明白正则表达式:

这里用虚拟机进行演示
修改主机名为:abcd-efgh-ijkl-123-4213

这里我们使用静态模式修改主机名
这里说明一下,静态模式下修改主机名无需重启设备,可直接生效

[root@SpiralStory ~]# hostnamectl set-hostname --static abcd-efgh-ijkl-123-4213
[root@SpiralStory ~]# bash
[root@abcd-efgh-ijkl-123-4213 ~]# cat /etc/hostname 
abcd-efgh-ijkl-123-4213

精确匹配主机名
cat /etc/hostname | egrep -w ‘[a-z]{4}’-’[a-z]{4}’-’[a-z]{4}’-’[0-9]{3}’-’[0-9]{4}’
这里说明下参数含义:

  egrep -w   /精确匹配某字符串
 '[a-z]'   /正则匹配包含a到z的字符串
 ‘[0-9]’   /正则匹配包含0到9的字符串
 ‘[a-z]{4}’  /正则匹配包含a到z并且长度为4的字符串
 ‘[0-9]{4}’  /正则匹配包含0到9并且长度为4的字符串
 ’[a-zA-Z0-9]{4}‘  /正则匹配包含大小写a到z 0到9并且长度为4的字符串
 ’[a-zA-Z0-9]{4,7}‘  /正则匹配包含大小写a到z 0到9并且长度为4到7的字符串
如下结果:
[root@abcd-efgh-ijkl-123-4213 ~]# cat /etc/hostname | egrep -w '[a-z]{4}'-'[a-z]{4}'-'[a-z]{4}'-'[0-9]{3}'-'[0-9]{4}'
abcd-efgh-ijkl-123-4213

模糊精准匹配主机名:

[root@abcd-efgh-ijkl-123-4213 ~]# hostnamectl set-hostname --static abcd-efgh-ijkl123-4213 
[root@abcd-efgh-ijkl-123-4213 ~]# bash 
[root@abcd-efgh-ijkl123-4213 ~]# cat /etc/hostname  abcd-efgh-ijkl123-4213
[root@abcd-efgh-ijkl123-4213 ~]# cat /etc/hostname | egrep -w '[a-z]{4}'-'[a-z]{4}'-'[a-zA-Z0-9]{1,7}'-'[0-9]{1,4}'
abcd-efgh-ijkl123-4213

匹配mac地址:

 [root@abcd-efgh-ijkl123-4213 ~]# ip a | egrep -w '[a-z]{2}':'[a-z]{2}':'[a-z]{2}':'[a-z]{2}':'[a-z]{2}':'[a-z]{2}'
    link/ether 00:0c:29:61:fc:03 brd ff:ff:ff:ff:ff:ff
    link/ether 52:54:00:b9:f7:73 brd ff:ff:ff:ff:ff:ff
    link/ether 52:54:00:b9:f7:73 brd ff:ff:ff:ff:ff:ff

我们都知道mac地址是6位字符串,所以还可以用这种方法:

[root@abcd-efgh-ijkl123-4213 ~]# ifconfig ens33  | egrep -v no | grep ether | head -n 1 | grep -o  "[a-f0-9A-F]\\([a-f0-9A-F]\\:[a-f0-9A-F]\\)\\{5\\}[a-f0-9A-F]"
00:0c:29:61:fc:03

匹配网址:

^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*$

例如: http://www.baidu.com

匹配http url:

^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*([\?&]\w+=\w*)*$

例如: http://www.tetet.com/index.html?q=1&m=test
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值