有没有可能Lua的libpcre实现不支持'\d'?

发布于 2024-12-19 10:13:52 字数 544 浏览 1 评论 0原文

我发现 \d 不被识别为 [0-9]。请参阅下面的控制台输出:

> require "rex_pcre"
> return rex_pcre.new("[0-9]+"):exec("1234")
1       4       table: 0x2141ce0
> return rex_pcre.new("\d+"):exec("1234")
nil

我是否缺少某些内容或什么?

更新

正如凯文·巴拉德(Kevin Ballard)正确回答的那样,字符串转义有效!例如,

> return rex_pcre.new("\\d+"):exec("1234")
1       4       table: 0x21427f0
> return rex_pcre.new([[\d+]]):exec("1234")
1       4       table: 0x2142ee0

谢谢凯文

I find that \d is not recognized as [0-9]. See my console output below:

> require "rex_pcre"
> return rex_pcre.new("[0-9]+"):exec("1234")
1       4       table: 0x2141ce0
> return rex_pcre.new("\d+"):exec("1234")
nil

Am I missing something or what?

UPDATE

As Kevin Ballard have correctly answered, string escaping works! e.g.

> return rex_pcre.new("\\d+"):exec("1234")
1       4       table: 0x21427f0
> return rex_pcre.new([[\d+]]):exec("1234")
1       4       table: 0x2142ee0

Thanks Kevin

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

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

发布评论

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

评论(1

不羁少年 2024-12-26 10:13:52

我想这是因为 \d 被 Lua 解释为字符串转义。尝试使用 "\\d+"[[\d+]] 代替。语法此处解释

I imagine it's because \d is being interpreted as a string escape by Lua. Try using "\\d+" or [[\d+]] instead. The syntax is explained here.

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