68

特定の一致するテキストがテキストの文字列で少なくとも 1 回見つかった場合に true になる条件を作成する必要があります。

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

テキストが文字列のどこかにあるかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

122

一致するテキストを見つけるには2つのオプションがあります。string.matchまたはstring.find

これらは両方とも、一致するものを見つけるために文字列に対して正規表現検索を実行します。


string.find()

string.find(subject string, pattern string, optional start position, optional plain flag)

startIndex見つかった部分文字列の&を返しますendIndex

このplainフラグを使用すると、パターンを無視して、リテラルとして解釈することができます。(tiger)に一致する正規表現キャプチャグループとして解釈されるのではなく、文字列内tigerを検索し(tiger)ます。

逆に、正規表現の一致が必要であるが、リテラルの特殊文字(など.()[]+-)が必要な場合は、パーセンテージでエスケープできます。%(tiger%)

これをと組み合わせて使用​​する可能性がありますstring.sub

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

string.match()

string.match(s, pattern, optional index)

見つかったキャプチャグループを返します。

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
于 2012-04-15T00:23:47.563 に答える