如何检查Lua中的字符串中是否找到匹配的文本?

时间:2012-04-15 00:08:22

标签: string lua conditional string-matching

如果在一串文本中至少找到一次特定的匹配文本,我需要创建一个条件,例如:

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.")

如何检查文本是否在字符串中的某处找到?

1 个答案:

答案 0 :(得分:59)

您可以使用string.matchstring.find之一。我个人自己使用string.find()。此外,您需要指定end语句的if-else。所以,实际的代码就像:

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

应该注意的是,在尝试匹配特殊字符(例如.()[]+-等)时,应使用%字符在模式中对其进行转义。因此,为了匹配,例如。 tiger(,电话会是:

str:find "tiger%("

可以在Lua-Users wikiSO's Documentation sections检查有关模式的更多信息。