2017-02-13 19 views
3

Я пытаюсь найти строку в HTML-Body, строка выглядит как var version="1,1,0,0";, и я хочу только извлечь содержимое между двойными кавычками. Я пробовал сLUA: Найти и вернуть строку в двойных кавычках

local version = string.match(response.body, ".version.") return version

+1

'local version = response.body: match ('var% s + version = (% b" ");'): sub (2, -2)' – tonypdmtr

ответ

2

Вы можете использовать var%s+version="([^"]+) шаблон с string.match который будет выводить только захваченный текст (т.е. один согласован с ([^"]+)) (см это Lua patterns tutorial):

s = [[var version="1,1,0,0";]] 
res = string.match(s, [[var%s+version="([^"]+)]]) 
print(res) 

См. Lua demo.

Детали:

  • var - буквальный var текст
  • %s+ - 1+ пробельные символы
  • version=" - буквальный version=" текст
  • ([^"]+) - согласующий группа захвата 1+ символы, кроме ".

Если вы хотите, чтобы указать, что может быть только цифры и запятые внутри version="...", используйте var%s+version="([%d,]+) шаблон (см demo), где [%d,]+ матчи 1+ цифры или запятые.