- A+
所属分类:Shell
在服务器上加了一个服务检测机制,用到正则来匹配IP和捕获分组。shell和其他语言一样也可以使用正则分组捕获,不过不能使用 $1或\1这样的形式来捕获分组,可以通过数组${BASH_REMATCH}来获得,如${BASH_REMATCH[1]},${BASH_REMATCH[N]}
简单的测试如下所示:
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash ip="121.0.2.2" if [[ $ip =~ ^([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ ]];then echo "match" echo ${BASH_REMATCH[1]} echo ${BASH_REMATCH[2]} echo ${BASH_REMATCH[3]} echo ${BASH_REMATCH[4]} else echo "Not match" fi |
转载请注明来自运维生存时间: http://www.ttlsa.com/html/3382.html

微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
02/12/2014 下午 5:56 沙发
0.13.32.97 匹配有问题
03/12/2014 上午 10:20 1层
@JackpGao if [[ $ip =~ ^([1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).([0-9]{1,2}|1[0-9][0-9]|
2[0-4][0-9]|25[0-5])$ ]];then
24/06/2016 上午 12:38 1层
@JackpGao 大兄弟,你这个IP,有吗?
17/03/2014 下午 2:59 板凳
这个需求不用搞得这么复杂吧。。。。看见那么多IP匹配,眼花。
” />
17/03/2014 下午 4:37 1层
@ttlsa 请赐教
18/03/2014 上午 12:00 1层
@ttlsa
” /> 通过这个例子来讲用法。