2012-06-22 53 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.gmatch而不是string.gfind – Smile4ever

回答

7

-字符在圖案特殊的意義,用於非貪婪重複。

您需要轉義它,即使用模式" %-%-"

22

您可以使用string.gsub真正做到這一點作爲一個班輪:

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

無循環需要!

不推薦用於大文件,因爲該函數將輸入保存到_變量中,並保留在內存中直到變量被銷燬。

相關問題