web-dev-qa-db-ja.com

Luaの文字列に一致するテキストが見つかったかどうかを確認するにはどうすればよいですか?

特定の一致するテキストがテキストの文字列で少なくとも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.")

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

38
Village

_string.match_または_string.find_のいずれかを使用できます。私は個人的に string.find() 自分を使用しています。また、_if-else_ステートメントのendを指定する必要があります。したがって、実際のコードは次のようになります。

_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 wiki で確認できます SOのドキュメントセクション

64
hjpotter92