string遍历空行,行行都是?
- 内容介绍
- 文章标签
- 相关推荐
本文共计279个文字,预计阅读时间需要2分钟。
给定一个包含空行的多行字符串,如何使用Lua遍历字符串中的每一行,包括空行?
lualocal s=foobarblankjimfor line in magiclines(s) do print(line== and (blank) or line)end-- 输出结果: foo-- bar-- (blank)-- jim
这段代码使用了`magiclines`函数来遍历字符串中的每一行,包括空行。在`for`循环中,当行内容为空时,打印`(blank)`,否则打印行内容。
给定一个带有一些空行的多行字符串,如何迭代Lua中的行,包括空行?local s = "foo\nbar\n\njim" for line in magiclines(s) do print( line=="" and "(blank)" or line) end --> foo --> bar --> (blank) --> jim
此代码不包含空行:
for line in string.gmatch(s,'[^\r\n]+') do print(line) end --> foo --> bar --> jim
此代码包含额外的虚假空白行:
for line in string.gmatch(s,"[^\r\n]*") do print( line=="" and "(blank)" or line) end --> foo --> (blank) --> bar --> (blank) --> (blank) --> jim --> (blank) 试试这个:
function magiclines(s) if s:sub(-1)~="\n" then s=s.."\n" end return s:gmatch("(.-)\n") end
本文共计279个文字,预计阅读时间需要2分钟。
给定一个包含空行的多行字符串,如何使用Lua遍历字符串中的每一行,包括空行?
lualocal s=foobarblankjimfor line in magiclines(s) do print(line== and (blank) or line)end-- 输出结果: foo-- bar-- (blank)-- jim
这段代码使用了`magiclines`函数来遍历字符串中的每一行,包括空行。在`for`循环中,当行内容为空时,打印`(blank)`,否则打印行内容。
给定一个带有一些空行的多行字符串,如何迭代Lua中的行,包括空行?local s = "foo\nbar\n\njim" for line in magiclines(s) do print( line=="" and "(blank)" or line) end --> foo --> bar --> (blank) --> jim
此代码不包含空行:
for line in string.gmatch(s,'[^\r\n]+') do print(line) end --> foo --> bar --> jim
此代码包含额外的虚假空白行:
for line in string.gmatch(s,"[^\r\n]*") do print( line=="" and "(blank)" or line) end --> foo --> (blank) --> bar --> (blank) --> (blank) --> jim --> (blank) 试试这个:
function magiclines(s) if s:sub(-1)~="\n" then s=s.."\n" end return s:gmatch("(.-)\n") end

