【发布时间】:2023-02-03 20:41:22
【问题描述】:
我正在尝试为以下数据创建正则表达式以进行解析,但无法获得第二个匹配模式2.2.2.2 testIp2。由于对正则表达式的了解不多,因此苦苦挣扎了将近 12 个小时。
要解析的数据:
show names
names 1.1.1.1 testIp1 2.2.2.2 testIp2
name 192.168.1.1 testIp3
umesh 192.168.1.2 testIp4
我可以创建的正则表达式:
^(?:name|names)(?:\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\S+))
这是我的 perl 代码 sn-p:
while( $data =~ /^(?:name|names)(?:\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\S+))/mg) {
$LOGGER->debug("IPs : $1 : $2");
}
在下面的截图中,请检查 ip2.2.2.2 测试IP2在 regex101 工具中不匹配:
【问题讨论】:
-
1.1.1.1 测试IP1 2.2.2.2 测试IP2 192.168.1.1 测试IP3
-
那么
name有一个 IP 和一个名字,names有一对列表? -
你如何解析这个?请edit你的问题,并在你的比赛中包含 Perl 代码。
-
是的,基本上我想要我的 perl 脚本中的 IP、名称对。
-
@simbabque,我已经用 perl 代码 sn-p 和正则表达式 101 的屏幕截图更新了问题,也许这会有所帮助。谢谢