18

文字列に「 -- 」が出現する回数を数えようとしています。

たとえば、ここでは 'a --b --c' が 2 回発生します。

次のことを試しましたが、2 ではなく 4 になりました。

argv='a --b --c'
count = 0
for i in string.gfind(argv, " --") do
   count = count + 1
end
print(count)
4

3 に答える 3

35

実際には、次を使用してワンライナーでこれを行うことができますstring.gsub

local _, count = string.gsub(argv, " %-%-", "")
print(count)

ループ不要!

関数は処理された入力を変数に返し、_変数が破棄されるまでメモリを保持するため、大きな入力にはお勧めできません。

于 2012-06-22T14:27:02.210 に答える
11

-文字はパターンで特別な意味を持ち、貪欲でない繰り返しに使用されます。

あなたはそれをエスケープする必要があります、すなわちパターンを使用します" %-%-"

于 2012-06-22T07:59:38.040 に答える