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

时间:2018-09-05 14:21:05

标签: lua

我正在尝试匹配多行字符串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 =音频12662 RTP / AVP 0101
  a = rtpmap:0 PCMU / 8000
  a = rtpmap:101电话事件/ 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

1 个答案:

答案 0 :(得分:1)

这是一个更简单的模式:

a_sdp = [[v=0
o=- 20064 20065 IN IP4 172.26.201.100
s=SDP data
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
]]

print(a_sdp:match("c=IN%s+IP4%s*(.-)\n"))