假设我有一个像这样的字符串:
快速[color = brown]棕色[/ color]狐狸 懒散的狗[color = green] jum [/ color] p [color = yellow] e [/ color] d
通过它并将所有内容放在一个数组中的好方法是什么?每次文本都在[color]标签的范围内时,它周围会有颜色标签?所以这个词“跳了起来”。看起来像这样:
[color=green]j[/color]
[color=green]u[/color]
[color=green]m[/color]
p
[color=yellow]e[/color]
d
其中每一行都是索引中的新实例。
目前,我正试图通过大量解析来实现我认为非常混乱的方式...
答案 0 :(得分:3)
local input_string = 'the quick [color=brown]brown[/color] fox [color=green]jum[/color]p[color=yellow]e[/color]d over the lazy dog'
;('[/color]'..input_string):gsub('(%b[])([^[]*)',
function(tag, text)
for c in text:gmatch'.' do
print(tag == '[/color]' and c or tag..c..'[/color]')
end
end
)