【问题标题】:Lua - string.find(x, "a - b c") gives nil valueLua - string.find(x, "a - b c") 给出 nil 值
【发布时间】:2015-08-30 08:02:24
【问题描述】:

我用:

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

这打印为零。但为什么? x 内部有一个“a - b c”字符串。如果我使用y = string.find(x, "b c"),那么它会打印13,这是正确的,但我必须找到a - b c...

【问题讨论】:

  • 也许''-''是一个特殊字符,前面需要一个''\''?
  • 不是。不过试了一下,报错了。
  • 根据我的谷歌搜索,它与 Lua 中的重复有关。虽然我不熟悉这种语言......
  • @shapiro.yaacov 与大多数正则表达式不同,Lua 使用 %,而不是 \,但你是对的:“-”是一个非贪婪搜索字符。

标签: string lua


【解决方案1】:

string.find 第二个参数是正则表达式模式,而不是纯字符串。要搜索文字字符串,请使用以下代码:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    相关资源
    最近更新 更多