J'ai besoin de faire une condition qui est vraie si un texte correspondant particulier est trouvé au moins une fois dans une chaîne de texte, par exemple:
str = "This is some text containing the Word tiger."
if string.match(str, "tiger") then
print ("The Word tiger was found.")
else
print ("The Word tiger was not found.")
Comment puis-je vérifier si le texte se trouve quelque part dans la chaîne?
Vous pouvez utiliser string.match
Ou string.find
. J'utilise personnellement string.find()
moi-même. Vous devez également spécifier end
de votre instruction if-else
. Ainsi, le code réel sera comme:
str = "This is some text containing the Word tiger."
if string.match(str, "tiger") then
print ("The Word tiger was found.")
else
print ("The Word tiger was not found.")
end
str = "This is some text containing the Word tiger."
if string.find(str, "tiger") then
print ("The Word tiger was found.")
else
print ("The Word tiger was not found.")
end
Il convient de noter que lorsque vous essayez de faire correspondre des caractères spéciaux (tels que .()[]+-
etc.), ils doivent être échappés dans les modèles en utilisant un caractère %
. Par conséquent, pour correspondre, par exemple. tiger(
, L'appel serait:
str:find "tiger%("
Plus d'informations sur les modèles peuvent être consultées sur wiki Lua-Users ou Sections de documentation de SO.