有没有可能Lua的libpcre实现不支持'\d'?
我发现 \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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想这是因为
\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.