Lua中匹配多行字符串中的IP

我正在尝试匹配一个多行字符串中的IP地址的子网部分。

这是代码:

a_sdp = "v=0

o=- 20064 20065 IN IP4 172.26.201.100

s=SDP 数据

c=IN IP4 172.26.201.100

t=0 0

m=audio 12662 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-15

a=ptime:20 ";

rgex = "c=IN%sIP4%s(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%.";

a_subnet = string.match(a_sdp,rgex,1);

我想要匹配c=IN IP4 172.26.201并将捕获的172.26.201存储在第1组中。

我尝试过各种各样的方法,但我甚至不能似乎匹配一个值,更不用说IP地址的部分了。我总是得到a_subnet = null

点赞
用户107090
用户107090

下面是一个更简单的模式:

a_sdp = [[v=0
o=- 20064 20065 IN IP4 172.26.201.100
s=SDP 数据
c=IN IP4 172.26.201.100
t=0 0
m=音频 12662 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
]]

print(a_sdp:match("c=IN%s+IP4%s*(.-)\n"))
2018-09-05 15:41:26