2017-10-20 9 views
1

Comment puis-je implémenter le symbole * de type vba dans Lua? Je veux comparer le modèle comme "aabb*" dans les chaînes "aaabbb" (faux) ou "aabbds" (vrai).Lua implémentation de *

+0

Avez-vous besoin d'autres fonctions spéciales comme vba: '', '' #, '[charlist]', ''? [Charlist!]? –

Répondre

2
function string.like(text, pattern) 
    pattern = "^"..pattern:gsub("*", "\0"):gsub("%p", "%%%0"):gsub("%z", ".-").."$" 
    return text:find(pattern) and true or false 
end 

L'utilisation est local bool_result = str:like(pattern)

local pattern = "aabb*" 

print(("aaabbb"):like(pattern)) --> false 
print(("aabbds"):like(pattern)) --> true 
+0

Quoi, n'est-ce pas Lua? Fondamentalement, la syntaxe Ruby. 1ère fois voir :) – 7urkm3n