Возможно ли, что реализация Lua libpcre не поддерживает '\ d'? - PullRequest
7 голосов
/ 05 декабря 2011

Я считаю, что \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

Я что-то упустил или что?

UPDATE

Как правильно ответил Кевин Баллард, экранирование строк работает! например,

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

Спасибо, Кевин

1 Ответ

9 голосов
/ 05 декабря 2011

Я думаю, это потому, что \d интерпретируется Lua как побег из строки. Попробуйте использовать "\\d+" или [[\d+]]. Синтаксис объяснен здесь .

...