2011-12-05 13 views
7

Encuentro que \d no se reconoce como [0-9]. Vea la salida de mi consola a continuación:¿Es posible que la implementación libpcre de Lua no sea compatible con ' d'?

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

¿Echo de menos algo o qué?

ACTUALIZACIÓN

Como Kevin Ballard han respondido correctamente, cadena de escape funciona! p.ej.

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

Gracias Kevin

+0

Lo acabo de hacer, tomó algún tiempo, sin embargo, se debe al hecho, así que no dejes que acepte una respuesta hasta que hayan pasado 10 o 15 minutos desde que se publicó la pregunta. –

Respuesta

9

me imagino que es porque \d se interpreta como un escape de cuerda de Lua. Pruebe usar "\\d+" o [[\d+]] en su lugar. La sintaxis es explained here.

Cuestiones relacionadas