2012-06-22 22 views
7

Ich versuche zu zählen, wie oft "-" in einer Zeichenfolge auftritt.Anzahl der Zeichenfolgenvorkommen zählen

So zum Beispiel kommt es zweimal hier ‚ein --b --c‘

Ich habe versucht, die folgenden, aber es gibt mir 4 statt 2, eine Idee, warum?

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

In Lua 5.1 und höher müssen Sie string.gmatch statt string.ffind verwenden – Smile4ever

Antwort

7

Der - Charakter hat besondere Bedeutung in Mustern, für eine nicht-gierige Wiederholung verwendet.

Sie müssen es entkommen, d. H. Verwenden Sie das Muster " %-%-".

22

Sie können dies tatsächlich tun, als Einzeiler mit string.gsub:

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

kein Looping erforderlich!

Nicht für große Dateien empfohlen, da die Funktion die Eingabe in die Variable _ speichert und den Speicher behält, bis die Variable zerstört wird.

Verwandte Themen