【发布时间】:2019-02-10 17:38:36
【问题描述】:
我正在尝试匹配作为多行字符串的 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 0 101
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。
【问题讨论】:
-
试试
%s+而不是%s -
具有多个捕获的
match将返回多个结果。您需要通过以下方式捕获它们:table.concact({string.match(a_sdp,rgex,1)},'.') -
Lua 中的多行字符串用 [[ ... ]] 括起来,方括号之间有任何匹配数量的 =
标签: lua