Lua的libpcre实现是否可能不支持'\ d'?

时间:2011-12-05 04:08:08

标签: regex lua pcre

我发现\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正确回答的那样,字符串转义工作! e.g。

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

谢谢Kevin

1 个答案:

答案 0 :(得分:9)

我想这是因为\d被解释为Lua的字符串转义。请尝试使用"\\d+"[[\d+]]。语法为explained here