Javascript 用于以特定格式匹配IP的正则表达式
我有一句话:Javascript 用于以特定格式匹配IP的正则表达式,javascript,regex,regex-lookarounds,Javascript,Regex,Regex Lookarounds,我有一句话: OUT = br0 SRC = 222.187.221.84 DST = 192.168.1.20 LEN = 60 OUT = br0 SRC = 222.187.221.84 DST = 192.168.1.20 LEN = 60 OUT = br0 SRC = 222.187.221.84 DST = 192.168.1.20 LEN = 60 如何仅获取src=(ipaddress)并仅获取ipaddress 尝试: 您可以使用正向lookbehind正则表达式,如下所示
OUT = br0 SRC = 222.187.221.84 DST = 192.168.1.20 LEN = 60 OUT = br0 SRC = 222.187.221.84 DST = 192.168.1.20 LEN = 60 OUT = br0 SRC = 222.187.221.84 DST = 192.168.1.20 LEN = 60
如何仅获取src=(ipaddress)并仅获取ipaddress
尝试:
您可以使用正向lookbehind正则表达式,如下所示:
(?这应该可以让您获得ip
var ipReg=/SRC=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/;
var str='br0 SRC=222.187.221.84 DST=192.168.1.20 LEN=60 OUT=br0 SRC=222.187.221.84 DST=192.168.1.20 LEN=60 OUT=br0 SRC=222.187.221.84 DST=192.168.1.20 LEN=60';
var ip=str.match(ipReg)[1];
console.log(ip)
您可以使用此正则表达式并从group1提取ip
SRC\s*=\s*(\d{1,3}(?:\.\d{1,3}){3})
注意,这个正则表达式还通过在正则表达式中使用\s*
来放松SRC
、=
和IP之间的空白量,启用不区分大小写的匹配也将有助于匹配SRC
JS代码演示
const s='OUT=br0 SRC=222.187.221.84 DST=192.168.1.20 LEN=60 OUT=br0 SRC=222.187.221.85 DST=192.168.1.20 LEN=60 OUT=br0 SRC=222.187.221.86 DST=192.168.1.20 LEN=60'
常量reg=/SRC\s*=\s*(\d{1,3}(?:\.\d{1,3}){3})/ig
而((m=reg.exec))){
console.log(m[1])
}
正如其他答案所建议的那样:您可以使用以下内容:
var regex= /SRC = (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/g;
或:
在括号中捕获要匹配的组:
(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
然后可以继续为字符串中的所有匹配项执行正则表达式
var txt=“OUT=br0 SRC=222.187.221.84 DST=192.168.1.20 LEN=60 OUT=br0 SRC=222.187.221.84 DST=192.168.1.20 LEN=60 OUT=br0 SRC=222.187.221.84 DST=192.168.1.20 LEN=60”;
var regex=/SRC\s*=\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/g;
var match=regex.exec(txt);
while(匹配!=null){
console.log(匹配[1]);
match=regex.exec(txt);
}
请编辑您的问题,以包含您迄今为止编写的代码。或其他正则表达式:
var regex= /SRC\s*=\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/g;
(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})