Поиск строк между двумя строками в lua

#lua

Вопрос:

Я пытался найти все возможные строки между 2 строками

Это мой вклад: "print/// to be able to put any amount of strings here endprint///"

Цель состоит в том, чтобы напечатать каждую строку между print/// и endprint///

Комментарии:

1. Непонятно, что вы пытаетесь получить, потому что вы неправильно используете слово «строка». «Строка» — это весь текст. «подстрока» — это часть строки. Если вы хотите получить текст между print и endprint — вы хотите получить подстроку. Но если вы хотите, чтобы их было «много», я думаю, вас интересуют слова, разделенные пробелами. Пожалуйста, уточните, что именно вы хотите получить в своем примере.

Ответ №1:

Для этого вы можете использовать шаблоны строк Lua.

 local text = "print/// to be able to put any amount of strings here   endprint///"

print(text:match("print///(.*)endprint///"))
 

Шаблон "print///(.*)endprint///" захватывает любой символ, который находится между "print///" и "endprint///"

Ответ №2:

Шаблоны строк Lua здесь

В такого рода задачах вы не используете жадные кванторы * или вместо этого используете ленивый квантор - . Это происходит потому * , что совпадает до последнего появления подобразца после него, в то время - как совпадает до первого появления подобразца после него. Итак, вам следует использовать этот шаблон:

печать///(.-)конечный отпечаток///

И чтобы соответствовать ему в Lua, вы делаете это:

 local text = "print/// to be able to put any amount of strings here   endprint///"

local match = text:match("print///(.-)endprint///")
-- `match` should now be the text in-between.
print(match) -- "to be able to put any amount of strings here   "