Lua - string.find(x, "a - b c") 返回了nil值。

3

我使用:

x = "Testing a - b c Test"
y = string.find(x, "a - b c")
print(y)

这会打印出nil。但是为什么呢?因为x中有一个"a - b c"的字符串。如果我使用y = string.find(x, "b c"),则会打印出正确的13,但我必须找到a - b c...


也许“-”是一个特殊字符,需要在它前面加上“\”? - shapiro yaacov
不是这样的。我尝试了一下,但是会报错。 - darkchampionz
根据我的谷歌搜索,这与Lua中的重复有关。虽然我不熟悉这种语言... - shapiro yaacov
@shapiro.yaacov 与大多数正则表达式不同,Lua使用%而不是\,但您是正确的:“-”是一个非贪心搜索字符。 - DavisDude
1个回答

9

string.find函数的第二个参数是正则表达式模式,而不是普通字符串。如果要查找字面字符串,请使用以下代码:

y = string.find(x, "a - b c", 1, true)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接