2
Можно ли использовать string.match
и вернуть захват до последнего символа .
, чтобы остановиться на части расширения?Извлечение имени файла только с учетом соответствия шаблону
Можно ли использовать string.match
и вернуть захват до последнего символа .
, чтобы остановиться на части расширения?Извлечение имени файла только с учетом соответствия шаблону
local str = "filename.lua.txt"
local cap = str:match("(.+)%..+")
print(cap)
Выход: filename.lua
Ключ в этой модели является прожорливость из +
и использовать %.
представлять буквального .
Не правильнее использовать '+' вместо '* 'поскольку обе части не могут быть пустыми? – user2779657
@ user2779657 Звучит правильно. Я не использовал '+', потому что я не уверен, что обе части не могут быть пустыми во всей ОС. –
любая часть может быть пуста на ** любой ** текущей ОС. Имена файлов, такие как '.foo' или' bar', разрешены для всех систем. – dualed