@LoliNeko

Как получить содержимое между тегами в строке с помощью string.find?

--получаем позиции содержимого в строке вместе с тегами
i, j = string.find (data, "<body>(.-)</body>")
--отнимает количество символов эквивалентных размерам тегов
msg = string.sub (data, i + 6, j - 7)

Как сделать это правильно?
  • Вопрос задан
  • 2255 просмотров
Решения вопроса 1
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Вот так?
repl.it/408/2
local data = 'asdds d sf fsadsadsad<body onload="javascrip:()">the text inside the tag</body>asdsadas ds fsd sdf dsadsad'

local tag = 'body'

local tagStart, tagEnd = data:find('<' .. tag .. '.->')
local closeTagStart, closeTagEnd = data:find('</' .. tag .. '.->', tagEnd + 1)

local textStart, textEnd = tagEnd + 1, closeTagStart - 1

local msg = data:sub(textStart, textEnd)
print(msg)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы