我想有一个函数,我可以传递一个空白修剪字符串,它将返回
0表示错误(不是字符串)1表示ipv4 2表示ipv6 3表示字符串不是ip.
Ipv6有这些规则:
Ipv6由8组由冒号(:)分隔的16位十六进制值表示
.十六进制数字不区分大小写
缩写规则:
1:在16位值中省略前导零
2:用一组或多组连续零替换双结肠
wiki示例显示3种方式都是相同的ipv6:
fe80:0000:0000:0000:0202:b3ff:fe1e:8329
fe80:0:0:0:202:b3ff:fe1e:8329
fe80::202:b3ff:fe1e:8329
Run Code Online (Sandbox Code Playgroud)
我有理由相信ipv4你只需要检查三个.然后检查字符串是否所有
数字和.的计数为数字,最后一个字符串的检查
将在if语句的末尾,所以如果它不是ipv4/6及其字符串则
返回3
我有一个像这样的嵌套表:
t1 ={}
t1[1] = {col1=1,col2=1,col3=1,col4=1}
t1[2] = {col1=1,col2=1,col3=1,col4=1}
t1[3] = {col1=1,col2=1,col3=1,col4=1}
t1[4] = {col1=1,col2=1,col3=1,col4=1}
Run Code Online (Sandbox Code Playgroud)
它实际上要大得多,t1中有250个项目,每个嵌套表有30个项目,所以我想要做的是循环并得到如下的子表值:
for i = 2, 4 do
local width = t1[draw.ID].col1 --draw.ID is got elsewhere
end
Run Code Online (Sandbox Code Playgroud)
但改变的数字部分.col1的i,所以当它循环的一部分,通过它得到:
t1[draw.ID].col2
t1[draw.ID].col3
t1[draw.ID].col4
Run Code Online (Sandbox Code Playgroud)
我正在使用Lua 5.1.
有没有办法使用table.concat的arg 2值来表示当前的表索引?
例如:
t = {}
t[1] = "a"
t[2] = "b"
t[3] = "c"
X = table.concat(t,"\n")
Run Code Online (Sandbox Code Playgroud)
表concat(X)的所需输出:
"1 a\n2 b\n3 c\n"
Run Code Online (Sandbox Code Playgroud) 任何人都可以提供替代从数字索引删除重复
表,将让重复的记录?这一个工程,但上表
1000个或多个条目似乎只是吃CPU,反过来给了"没有响应"
的应用程序lua嵌入在.
Run Code Online (Sandbox Code Playgroud)local Dupes ={} local t2 = {}; for i,v in pairs(t1) do Count = table.getn(t2) t2[v] = i Count1 = table.getn(t2) if Count == Count1 then table.insert(Dupes,v) end end
我创建了很多字符串变量名称,我想使用名称作为表名,即:
sName1 = "test"
sName2 = "test2"
tsName1 ={} -- would like this to be ttest ={}
tsName2 ={} -- ttest2 = {}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何使这个工作,已经经历了[]和.的各种组合,但在运行时我总是得到一个索引错误,任何帮助将不胜感激.