将字符串分割成Lua的2维表
2016-1-10 8:7:7
收藏:0
阅读:112
评论:2
假设我有这个字符串:
map_data = " *-* ; /|x|\ ; *-*-*-*; /|x|x|x|;-*-*-*-*-*; \|x|x|x|; *-*-*-*; \|x|/ ; *-* ;"
我想将字符串拆分为有序表在分号处。一旦我完成了这个操作,我想要将表的每个元素拆分为一个有序表(嵌套在第一个表中)。这个想法是为 ascii 地图创建一个二维表格。
我尝试了这个方法(但它不起作用,我也怀疑有更简单的方法):
map_data = " *-* ; /|x|\ ; *-*-*-*; /|x|x|x|;-*-*-*-*-*; \|x|x|x|; *-*-*-*; \|x|/ ; *-* ;"
map = {}
p = 1
pp = 1
for i in string.gmatch(map_data, "(.*);") do
map[p] = {}
for ii in string.gmatch(i, ".") do
map[p][pp] = ii
pp = pp + 1
end
p = p + 1
end
点赞
用户1177147
数年未碰 Lua 了,但假设你解决了转义字符的问题,就可以做类似以下的事情:
map = {{}} -- map 最初包含一个空行
for i = 1, #map_data do
local c = map_data:sub(i,i)
if c == ';' then
map[#map+1] = {} -- 在 map 末尾添加另一行
else
map[#map][ #map[#map] + 1] = c -- 将 c 添加到 map 中最后一行
end
end
2016-01-10 06:23:13
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
首先,字符串
map_data是无效的,因为\需要被转义。或者你可以使用长字符串语法[[ ... ]]:map_data = [[ *-* ; /|x|\ ; *-*-*-*; /|x|x|x|;-*-*-*-*-*; \|x|x|x|; *-*-*-*; \|x|/ ; *-* ;]]正则表达式
(.*);的问题在于,修饰符*是贪婪的。相反,可以使用-修饰符,它是懒惰的:for i in string.gmatch(map_data, "(.-);") do