Lua 中的 string.find() 函数
string.find() 是字符串库中最强大的库函数之一。
Lua 没有使用 POSIX 正则表达式进行模式匹配,因为其实现需要 4000 行代码,这实际上比所有 Lua 标准库加起来还要多。取而代之的是,Lua 的模式匹配实现只需不到 500 行代码。
string.find() 函数用于在给定字符串中查找特定模式,它通常接受两个参数,第一个参数是要搜索模式的字符串,第二个参数是要搜索的模式。
还有一个第三个参数,第三个参数是一个索引,指示在目标字符串中的哪个位置开始搜索。当我们想要处理给定模式出现的所有索引时,此参数很有用。它主要用于存在相同模式在同一字符串中多次出现的可能性。
语法
indexstart, indexend = string.find(s,”pattern”) or indexstart, indexend = string.find(s,”pattern”,indexstart + z)
在上述语法中,我提到了我们可以使用的两种类型的 string.find() 函数。
示例
让我们考虑一个 string.find() 函数非常简单的示例,其中我们将尝试在给定字符串中查找一个简单的模式。
请考虑以下所示的示例:
s = "hello world" i, j = string.find(s, "hello") print(i, j)
请注意,在上面的代码中,i 标识符是找到我们搜索的模式的起始索引,j 标识符是该模式的结束索引。
输出
1 5
可能存在我们只想使用其中一个索引的场景,在这些情况下,我们可以简单地编写如下代码。
示例
请考虑以下所示的示例:
_, y = string.find(s,"world") print(y) x, _ = string.find(s,"world") print(x)
输出
11 7
让我们再探索一个我们将使用第三个参数的示例。
示例
请考虑以下所示的示例:
s = "hello n hello y hello z" index = string.find(s,"hello",i+1) print(index)
输出
9
广告