Lua-从字符串中提取索引

时间:2018-06-25 12:39:26

标签: lua

我有一个lua字符串s1,如下所示。

s1='..{"login":{"username":"necs_0","url":"sip:192.168.1.218","contact":"sip:necs_0@192.168.1.218:61376","serverip":"192.168.1.216","serverport":"4080"}}';

显示为..的前两个字节包含两个字节,其长度为big endian格式。然后  {"login":{"username":"necs_存在索引值 0 。我需要提取该索引值。

我写了下面的脚本,它可以工作。我想知道什么是最有效的编写方法。

s1='..{"login":{"username":"necs_0","url":"sip:192.168.1.218","contact":"sip:necs_0@192.168.1.218:61376","serverip":"192.168.1.216","serverport":"4080"}}';

-- Advance first two bytes
s2 = s1:sub(3);

-- Find the index of necs_
index1 = s2:find('necs_', 1, true);

-- Find the index of "
index2 = s2:find('"', index1, true);

-- Extract the data between necs_ and "
s3=string.sub(s2,index1+5,index2-1);

-- Print the extracted data
print(s3)

让我担心的是,在s2 = s1:sub(3)行中,s2创建了一个新字符串,并将s1中的内容复制到了新字符串s2中。在使用C的情况下,我本可以像s2 = s1 + 2那样做,因此可以避免复制。

然后我正在使用findsub API。有没有更好的选择呢?

0 个答案:

没有答案