Lua string.match для извлечения некоторых значений HTML

Я использую Lua string.match для извлечения некоторых значений HTML, но у меня возникают проблемы с некоторыми атрибутами.

Чтобы извлечь такой номер телефона: 0000-0000, я использую маску:

local value = string.match(STRING, "%d%d%d%d-%d%d%d%d")

Но Lua возвращает что-то вроде этого: "0000000"

Где "-" в середине строки маски?

И есть ли способ сделать что-то вроде этого:

"%d[4]-%d[4]" (указывает, сколько символов появится в строке)


person briba    schedule 02.09.2013    source источник
comment
Чтобы сделать контекст более понятным, можете ли вы также добавить, что содержит STRING при вызове string.match?   -  person greatwolf    schedule 02.09.2013
comment
На самом деле строка представляет собой HTML после метода GET. :)   -  person briba    schedule 03.09.2013


Ответы (1)


- — это специальный управляющий символ в шаблонах Lua. Поскольку вам нужен буквальный символ -, вам нужно экранировать его символом %. Так что используйте %-.

person Nicol Bolas    schedule 02.09.2013
comment
@hjpotter92: Я уже давно использую Regex, поэтому забыл управляющий символ Lua. - person Nicol Bolas; 02.09.2013
comment
Не работал с \-, но работает с %-. Большое спасибо, Николь и hjpotter! - person briba; 02.09.2013