以下のコードを見てください。括弧内の項目が1つの場合の文字列の分割
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'のように空白ではない文字です。だからあなたのコードがあなたが見ていることをしているのです。私はあなたがしたいことをする*シンプルな方法があるかどうか分からないので、私は答えを投稿していません。考えることの1つ:ネストされたカッコまたは不一致のかっこをどうやって処理したいですか?例: ''((foo))(bar) ''または '' foo) ''? (その可能性を無視したいのであれば大丈夫かもしれませんが、仮定は明白でなければなりません)。 –