Я люблю Lua. I love Lua.

Регулярные выражения

Posted in Uncategorized by ilovelua on Январь 11, 2012

Понадобилось в слове заменить первую букву с заглавной на прописную.
Можно, конечно, сделать это по рабоче-крестьянски:

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

Вопросительный знак в паттерне нужен для того, чтобы заменялась только первая буква, а не любая заглавная.

Advertisements

комментария 3

Subscribe to comments with RSS.

  1. Volfger said, on Февраль 11, 2014 at 12:47 пп

    Интересная конструкция. Но ограничение на первый символ налагает цифра 1 в списке параметров. От вопросительного знака зависит только будет ли заменена 1-я буква в строке, если она заглавная, или любая первая встречная заглавная:

    local str = «ComboBox»
    print(str, «—>», string.gsub(str, «%u?», string.lower, 1))

    ComboBox —> comboBox 1

    str = «comboBox»
    print(str, «—>», string.gsub(str, «%u», string.lower, 1))

    comboBox —> combobox 1

  2. Useigor said, on Октябрь 27, 2014 at 8:47 пп

    Рабоче-крестьянский можно было написать изыскано:

    local str = «ComboBox»
    print(str:sub(1,1):lower() .. str:sub(2))


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: