string.find()

类型 函数
string.*
返回值 数字
修订 版本 2024.3703
关键词 string, find, search, patterns(字符串,查找,搜索,模式)
另请参阅 string.gmatch()
string.gsub()
string.match()

概览

在字符串中查找第一个匹配模式的子串。如果找到,则返回子串出现位置的起始索引和结束索引;否则,返回 nil

语法

string.find( s, pattern [, init [, plain]] )
s (必填)

字符串 要搜索的字符串。

pattern (必填)

字符串 指定要匹配的模式。请参阅 Lua 字符串操作

init (可选)

数字 指定搜索的起始位置。默认值为 1,可以为负数。负数表示从字符串末尾开始计数。

plain (可选)

布尔值 值为 true 时关闭模式匹配功能,因此该函数执行简单的“查找子字符串”操作,模式中的任何字符都不会被视为“魔术字符”。如果提供 plain 参数,则还必须提供 init 参数。

示例

print( string.find( "Hello Corona user", "Corona" ) )        --> 7   12
print( string.find( "Hello Corona user", "Bud" ) )           --> nil
print( string.find( "Hello Corona user", "Corona", 1 ) )     --> start at first character: 7   12
print( string.find( "Hello Corona user", "Corona", 8 ) )     --> start at character 8: nil
print( string.find( "Hello Corona user", "e", -5 ) )         --> first "e" 5 characters from end: 16   16
print( string.find( "Hello Corona user", "%su", 1, true ) )  --> nil