Lua 中的 string.find() 函数
string.find()是字符串库中最强大的库函数之一。
Lua不使用POSIX正则表达式进行模式匹配,因为它的实现需要4,000行代码,这实际上比所有Lua标准库加起来还要大。代替POSIX模式匹配,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