Попробуйте что-то вроде одного из следующих:
slashed_text = string.match("hello /world today/", "/([^/]*)/")
slashed_text = string.match("hello /world today/", "/(.-)/")
slashed_text = string.match("hello /world today/", "/(.*)/")
Это работает, потому что string.match
возвращает любые захваты из шаблона или весь сопоставленный текст, если нет захватов. Ключевым моментом является то, чтобы убедиться, что шаблон обладает нужной степенью жадности, помня, что шаблоны Lua не являются полным языком регулярных выражений.
Первые два должны совпадать с одинаковыми текстами. Во-первых, я явно требовал, чтобы шаблон соответствовал как можно большему количеству не косых черт. Второе (спасибо lhf) соответствует кратчайшему из всех символов, за которым следует косая черта. Третий - жадный, он соответствует самому длинному диапазону символов, за которым может следовать косая черта.
%b//
в исходном вопросе не имеет никаких преимуществ перед /.-/
, так как два разделителя имеют одинаковый символ.
Редактировать: Добавлен шаблон, предложенный lhf, и дополнительные пояснения.