Регулярные выражения
Понадобилось в слове заменить первую букву с заглавной на прописную.
Можно, конечно, сделать это по рабоче-крестьянски:
local str = "ComboBox" local firstLetter = string.sub(str, 1, 1) local tail = string.sub(str, 2) str = string.lower(firstLetter) .. tail print(str)
А можно и поизысканней:
local str = "ComboBox" print(str, "-->", string.gsub(str, "%u?", string.lower, 1)) str = "comboBox" print(str, "-->", string.gsub(str, "%u?", string.lower, 1))
ComboBox --> comboBox 1
comboBox --> comboBox 1
Вопросительный знак в паттерне нужен для того, чтобы заменялась только первая буква, а не любая заглавная.
Регулярные выражения
Задача: есть таблица table. Ключ для записи задается в виде «field1.field2.field3.field4.field5.field». Нужно в этой таблице записать значение:
table[field1][field2][field3][field4][field5][field] = value
Некоторые поля в таблице, что характерно, могут отсутствовать.
Решение: (more…)
Регулярные выражения
Понадобилось сделать следующее:
есть список файлов, некоторые из которых содержат признак локализации — знак подчеркивания и две буквы локализации перед расширением файла, например:
default.lua
default_de.lua
default_fr.lua
Нужно отрезать от имени файла расширение с точкой и, если есть, признак локализации. В итоге я сделал так:
local newFile = string.gsub(file, '(.lua)$', '') newFile = string.gsub(newFile, '(_%a%a)$', '')
А есть путь короче? Что-то у меня со всякими string.find(), string.match()
ничего не получилось.
3 комментария