首页 > 解决方案 > RegEx 用于匹配特定格式的 IP

问题描述

我有这条线:

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?

试图:

SRC=(.+)(\d+)(.+?(?=DST))

标签: javascriptregexregex-lookarounds

解决方案


您可以使用积极的后向正则表达式,如下所示:

(?<=SRC = )\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

正则表达式 101 示例: https ://regex101.com/r/cuAUm3/1/

javascript代码:

const regex = /(?<=SRC = )\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/gm;
const str = `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`;

console.log(str.match(regex));

结果:

Array(3)
0: "222.187.221.84"
1: "222.187.221.84"
2: "222.187.221.84"

推荐阅读