Lua 中的 string.find() 函数

阅读 9261 收藏 0 点赞 0 评论 0

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

评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号