如何在lua中字符串查找方括号字符?

发布于 2024-11-08 22:39:58 字数 351 浏览 0 评论 0原文

所以我试图在字符串中找到方括号:

s = "testing [something] something else"
x,y = string.find(s,"[")

这给了我一个错误:格式错误(缺少“]”)。

我也尝试过:

x,y = string.find(s,"\[")

给我同样的错误。

这是:

x,y = string.find(s,"\\[")

在这种情况下 x 和 y 为零。

关于如何正确执行此操作有什么想法吗?提前致谢。

So I'm trying to find square brackets inside a string:

s = "testing [something] something else"
x,y = string.find(s,"[")

which gives me an error: malformed pattern (missing ']').

I also tried:

x,y = string.find(s,"\[")

giving me the same error.

And this:

x,y = string.find(s,"\\[")

in this case x and y are nil.

Any thoughts on how to do this properly? Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

德意的啸 2024-11-15 22:39:58

约翰的答案会起作用——关闭模式匹配。

你想要做的 - 转义 [ - 是通过 Lua 中的 % 字符完成的:

 x,y = string.find(s,'%[')

Lua 中的字符串也都将字符串模块作为其元表,所以你可以直接说:

 x,y = s:find('%[')

甚至:

 x,y = s:find'%['

John's answer will work -- turning off pattern matching.

What you're trying to do -- escape the [ -- is done with the % character in Lua:

 x,y = string.find(s,'%[')

Also strings in Lua all have the string module as their metatable, so you could just say:

 x,y = s:find('%[')

or even:

 x,y = s:find'%['
情泪▽动烟 2024-11-15 22:39:58

使用 string.find 的第四个参数,关闭模式匹配。

x, y = string.find(s, "[", nil, true)

Use the fourth argument to string.find, which turns off pattern-matching.

x, y = string.find(s, "[", nil, true)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文