在lua中分析字符串

时间:2012-01-18 07:42:27

标签: string text lua

有人会告诉我,如何从变量中的文本如下:

>Hello World
text,1000
text2,200

读: 1.行 - 如果在行中是>和行不是50个字符然后读取,如果不是 - 转到下一行 (检查的一部分是:

if string.sub(tekst, 1, 1) == '>' then
    ...
end

但没有任何关于检查行的长度。

下一行 - 通过","传递文字。并且首先从","之前获取文本。然后从","之后获取文本。到不同的变量(用脚本的另一部分来分析)

我将非常感激

1 个答案:

答案 0 :(得分:2)

你不清楚如何处理匹配的字符串(在>和行尾之间),因为read是通用的,我只是把它放在一个表中。

s=[[
>Hello World
text,1000
>A line that is way too long to fit in this small space won't be accepted in the table.
text2,200
>Some text on the last line]]

t={}
for match in s:gmatch('>([^\n]+)') do
    if #match<50 then
        t[#t+1]=match
        print(match)
    end
end

这还取决于哪个字符代表字符串中的line ending。可能性是:\n(UNIX,Mac和其他健全的世界)或\r\n(Windows)