我在特殊字符上把字符串分成两部分有问题。
例如:
12345#data或
1234567#data我在第一部分中有5-7个字符与"#"和第二部分分开,其中有另一个数据(字符、数字,不管是什么)。
我需要将两个部分存储在#的每一侧的两个变量中:
x = 12345
y = data 没有"#"字符。
我一直在寻找一些Lua字符串函数,比如splitOn("#")或子字符串,直到字符为止,但我还没有找到。
发布于 2016-02-04 11:34:07
使用string.match和captures。试试这个:
s = "12345#data"
a,b = s:match("(.+)#(.+)")
print(a,b)发布于 2016-02-04 11:13:31
首先,尽管Lua没有拆分函数是它的标准库,但它确实有
string.gmatch,在许多情况下可以使用它来代替拆分函数。与拆分函数不同,string.gmatch采用模式来匹配非分隔符文本,而不是分隔符本身。
借助string.gmatch的否定式字符类,很容易实现。
local example = "12345#data"
for i in string.gmatch(example, "[^#]+") do
print(i)
end请参阅IDEONE demo
[^#]+模式匹配#以外的一个或多个字符(因此,它用一个字符“拆分”一个字符串)。
https://stackoverflow.com/questions/35199482
复制相似问题