Mar*_*rek 1 string lua lua-patterns
我在将字符串拆分为特殊字符的两个字符串时遇到问题.
例如:
12345#data
Run Code Online (Sandbox Code Playgroud)
要么
1234567#data
Run Code Online (Sandbox Code Playgroud)
我在第一部分中有5-7个字符与"#"第二部分分开,其中是另一个数据(字符,数字,无所谓)
我需要将这些数据拆分并存储在两个变量中
x = 12345
y = data
Run Code Online (Sandbox Code Playgroud)
没有#性格.
我一直在寻找一些Lua字符串函数"#"或字符串,但我还没有找到.
请参阅此文档:
首先,尽管Lua没有split函数是它的标准库,但它确实有
string.gmatch,在很多情况下可以用它来代替split函数.与split函数不同,string.gmatch采用模式匹配非分隔符文本,而不是分隔符本身
它是用的帮助下很容易实现否定的字符类有string.gmatch:
local example = "12345#data"
for i in string.gmatch(example, "[^#]+") do
print(i)
end
Run Code Online (Sandbox Code Playgroud)
请参阅IDEONE演示
该[^#]+模式匹配除了之外的一个或多个字符#(因此,它将一个字符串"拆分"为1个字符).
使用string.match和捕获.试试这个:
s = "12345#data"
a,b = s:match("(.+)#(.+)")
print(a,b)
Run Code Online (Sandbox Code Playgroud)