用户登录
用户注册

分享至

shell正则匹配捕获引用进行IP匹配

  • 作者: 暴打脑残粉
  • 来源: 51数据库
  • 2022-09-21

在服务器上加了一个服务检测机制,用到正则来匹配IP和捕获分组。shell和其他语言一样也可以使用正则分组捕获,不过不能使用 $1或1这样的形式来捕获分组,可以通过数组${BASH_REMATCH}来获得,如${BASH_REMATCH[1]},${BASH_REMATCH[N]}

简单的测试如下所示:

#!/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
软件
前端设计
程序设计
Java相关