2012-06-22 20 views
7

文字列に " - "が現れる回数を数えようとしています。文字列の出現数をカウントする

だから、例えば、それはここで二回「-B-、-C」を発生

、なぜ任意のアイデアを、私は次のことを試してみましたが、それは私の4の代わりに2を与えますか?

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

Lua 5.1以降では、string.gfindの代わりにstring.gmatchを使用する必要があります – Smile4ever

答えて

7

-文字は非欲張りの繰り返しのために使用するパターンで特別な意味を持っています。

あなたはそれをエスケープする必要があります。つまり、パターン" %-%-"を使用してください。

22

あなたが実際にstring.gsubを使用してワンライナーとしてこれを行うことができます。

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

なしループを必要とします!

この関数は、入力が_変数に保存され、変数が破棄されるまでメモリに保持されるため、大きなファイルにはお勧めしません。

関連する問題