请在下面找到我的代码。拆分一个项目在括号内的字符串
str = "1791 (AR6K Async) S 2 0 0 0 -1 2129984 0 0 0 0 0 113 0 0 20 0 1 0 2370 0 0 4294967295 0 0 0 0 0 0 0 2147483647 0 3221520956 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
for val in str:gmatch("%S+") do
print(val)
end
输出:
1791
(AR6K
Async)
S
2
0
0
0
-1
....
但我期待输出一样,
1791
(AR6K Async)
S
2
0
0
0
-1
...
任何人都可以请帮助我如何获取值在支架作为一个单一的值,而不是获得独立值。
您的'str:gmatch'调用会在空格(空格)上拆分。就其而言,'('和')'字符没有什么特别之处;它们只是非空白字符,如'1'或'A'。这就是为什么你的代码能够完成你所看到的。我不确定是否有一种简单的方式来做你想做的事,这就是为什么我没有发布答案。有一件事要考虑:你想如何处理嵌套或不匹配的括号?例如:'“((foo))(bar)”'或'“foo)”'? (如果你想忽略这种可能性,那很可能,但任何假设都应该是明确的。) –