如何打印子字符串?

将下面内容翻译成中文只显示翻译内容,保留原本的 markdown 格式

函数 read_file(file)
    data = io.open(file, "r")
    for char in data:lines() do
        if char == "print>" then
            print(string.sub(char, 6))
        end
    end
    data:close()
end

函数 run()
    while true do
        print("打开一个文件")
        file = io.read()
        print("")
        read_file(file)
        print("")
    end
end

run()

代码中的 "if char == "print>" then print(string.sub(char, 6)) end" 部分没有输出内容,我尝试了修复但没有发现问题,有没有什么解决方法?

点赞
用户1190388
用户1190388

你应该使用 string.match 和/或 string.sub

以下所有解决方案都可以:

if char:match "^print>" then print( char:sub(7) ) end

或者

local d = char:match "^print>(.+)"
if d then print(d) end
2015-08-14 20:45:03