我有这样的一行
SNMPv2-SMI::enterprises.6889.2.69.5.1.58.0 = IpAddress: 10.169.130.48 SNMPv2-SMI::enterprises.6889.2.69.5.1.52.0 = STRING: "999"
我希望选择ip地址(10.169.130.48)和字符串输出(999)并修剪其他所有内容,我正在使用此代码。
/.*\s=\sIpAddress:\s(\d+\.\d+\.\d+\.\d+)\sSNMPv2-SMI.*\s=\sSTRING:\s\"(\d+)\"/
但我只得到10.169.130.48而不是字符串输出。我的问题是我不能用两个()来选择我想要的东西?另一种选择是什么?
答案 0 :(得分:1)
你的正则表达式很好。唯一的事情是,在Perl中你不需要转义双引号字符。由于正斜杠符号不被解释为字符串。
您可以通过$ 2
访问第二次捕获答案 1 :(得分:1)
你的正则表达式是正确的,你只是错过了结果。 Check this out寻求解决方案!
答案 2 :(得分:0)
以下正则表达式适用于Javascript:
var s = 'SNMPv2-SMI::enterprises.6889.2.69.5.1.58.0 = IpAddress: 10.169.130.48 SNMPv2-SMI::enterprises.6889.2.69.5.1.52.0 = STRING: "999"'
var m = s.match(/\bIpAddress:\s*([^\s]+).*?\bSTRING:\s*([^\s]+)/);
// m[1] = 10.169.130.48
// m[2] = "999"