在我们实际应用中,正则表达式的应用是非常广泛的,今天我就大家分享几个比较常见的正则表达式的应用实例,不周之处,还望高人多多指点!
一:使用正则表达式搜索邮箱地址
二:使用正则表达式搜索手机号
三:使用正则表达式搜索身份证号
四:使用正则表达式取网络配置文件中的IP地址的过程解析
一:使用正则表达式搜索邮箱地址:
[root@centos7 test]# cat mail 183530300@qq.com netadmin@126.com all-user@vip.qq.com love_you@51cto.com linuxedu@foxmail.com.cn love-fire@vip.sina.com love@vip.yahoo.com This is a mailbox address table [root@centos7 test]# egrep "\<([[:alnum:]]+(-|_)*[[:alnum:]]*)\>@([[:lower:]]|[[:digit:]])+\.[[:lower:]]*(\.[[:lower:]]+)*" mail 183530300@qq.com netadmin@126.com all-user@vip.qq.com love_you@51cto.com linuxedu@foxmail.com.cn love-fire@vip.sina.com love@vip.yahoo.com This is a mailbox address table qq_12345@qq.com -NB74110@qq.com
二:使用正则表达式搜索手机号:
[root@centos7 test]# cat tel 12812345678 a13012345678 b13112345678 c13212345678 1331234567890 13312345678 13412345678 13512345678 13612345678 13712345678 13812345678 13912345678 14012345678 14712345678 15012345678 15112345678 15212345678 15312345678 15412345678 15512345678 15612345678 15712345678 15812345678 15912345678 16012345678 17012345678 17712345678 17812345678 18012345678 18112345678 18212345678 18312345678 18412345678 18512345678 18612345678 18712345678 18812345678 abc1891234567890def 19012345678 [root@centos7 test]# egrep "\<13[0-9]{9}|147[0-9]{8}|15([0-3]|[5-9])[0-9]{8}|17[0,7][0-9]{8}|18([0-3]|[5-9])[0-9]{8}\>" tel
三:使用正则表达式搜索身份证号:
[root@centos7 test]# cat id 123456789876543210 130626199010016512def 130626199010016512 abc130626199010016512 160626199010016512 200626199010016515 220626199010016515 240626199010016515 30062619901001651X 32062619901001651X 38062619901001651X 402062620080808100 420626198002023518 42062619901001651X 462062620080808100 472062620080808100 500626199010016517 522122199808081671 520626199010016517 550626199010016517 560626199010016517 600626199010016519 650626199010016519 660626199010016519 70162619900231651X 71162619901001651X 720626199010016510 800626199010016511 987654328765432165 810626199002316511 810626201800016511 820626199010016511 820626101013326511 830626100100165119 584721520131499999 [root@centos7 test]# egrep "\<((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|(71|81|82))([0-9]){4}(19|20)([0-9]){2}((0[1-9])|(1[0-2]))(0[1-9]|([0-9])|(2[0-9])|(3[0-1]))([0-9]){3}([0-9]|X)\>" id 130626199010016512 220626199010016515 32062619901001651X 420626198002023518 42062619901001651X 500626199010016517 522122199808081671 520626199010016517 650626199010016519 71162619901001651X 810626199002316511 820626199010016511
四:使用正则表达式取网络配置文件中的IP地址的过程解析:
取四段中的第一段
[root@centos7 test]# egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>." /etc/sysconfig/network-scripts/ifcfg-eno16777728 IPADDR=10.1.254.254 GATEWAY=10.1.0.1 DNS1=202.106.0.20
取四段中的第二段
[root@centos7 test]# egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.)" /etc/sysconfig/network-scripts/ifcfg-eno16777728 IPADDR=10.1.254.254 GATEWAY=10.1.0.1 DNS1=202.106.0.20
取四段中的第三段
[root@centos7 test]# egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){2}" /etc/sysconfig/network-scripts/ifcfg-eno16777728 IPADDR=10.1.254.254 GATEWAY=10.1.0.1 DNS1=202.106.0.20
取四段中的第四段
[root@centos7 test]# egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){2}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>" /etc/sysconfig/network-scripts/ifcfg-eno16777728 IPADDR=10.1.254.254 GATEWAY=10.1.0.1 DNS1=202.106.0.20
只显示IP地址
[root@centos7 test]# egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){2}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>" /etc/sysconfig/network-scripts/ifcfg-eno16777728 10.1.254.254 10.1.0.1 202.106.0.20
本文出自 “爱情防火墙” 的博客,请务必保留此出处:http://www.178linux.com/author/lovefirewall
原创文章,作者:爱情防火墙,如若转载,请注明出处:http://www.178linux.com/29995