Nya*_*Cat 1 string lua lua-patterns
一个简单的模式应该做的工作,但我不能想出/找到有用的东西.我希望有这样的事情:
lines = string.gmatch(string, "^\r\n")
Run Code Online (Sandbox Code Playgroud)
要将字符串拆分为表(数组),您可以使用以下内容:
str = "qwe\nasd\rzxc"
lines = {}
for s in str:gmatch("[^\r\n]+") do
table.insert(lines, s)
end
Run Code Online (Sandbox Code Playgroud)
重要的一点 - 用于gmatch删除分隔符的解决方案不匹配两个换行符之间的空字符串,因此如果您想像正常的拆分实现一样保留这些字符串(例如,比较两个文档之间的行),您最好匹配分隔符比如这个例子:
function string:split(delimiter)
local result = { }
local from = 1
local delim_from, delim_to = string.find( self, delimiter, from )
while delim_from do
table.insert( result, string.sub( self, from , delim_from-1 ) )
from = delim_to + 1
delim_from, delim_to = string.find( self, delimiter, from )
end
table.insert( result, string.sub( self, from ) )
return result
end
Run Code Online (Sandbox Code Playgroud)
归功于 https://gist.github.com/jaredallard/ddb152179831dd23b230。
我找到了答案:使用“[^\r\n]+”(“+”用于跳过空行)。
之前,我故意避免使用括号,因为我认为它表示不支持转义的特殊字符串文字。嗯,那是不正确的。这是双括号的作用。
Lua string.gsub() 按 '%s' 或 '\n' 模式
| 归档时间: |
|
| 查看次数: |
5947 次 |
| 最近记录: |