用lua解析代码语法?

时间:2014-05-07 06:30:18

标签: string parsing syntax lua format

假设我有一个像这样的字符串:

  

快速[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

其中每一行都是索引中的新实例。

目前,我正试图通过大量解析来实现我认为非常混乱的方式...

1 个答案:

答案 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
)