Lua:
Видалення лапок зі строки
Як це зробити:
Ось як позбутися лапок у Lua:
local function remove_quotes(str)
return (str:gsub("^%p(.*)%p$", "%1"))
end
print(remove_quotes('"Привіт, Світ!"')) -- Привіт, Світ!
print(remove_quotes("'Бувай, Лапки!'")) -- Бувай, Лапки!
Бінго! Ці лапки зникли як шкарпетки в сушильній машині.
Поглиблений розгляд
Люди видаляють лапки з рядків з того часу, як мови почали обробляти текст, що є майже завжди. У Lua функція gsub
виконує основну роботу, використовуючи шаблони як скальпель для видалення лапок. Альтернативи? Звісно, ви могли б використовувати регулярні вирази в мовах, які їх підтримують, або написати власний цикл, який обробляє кожен символ (зітхання, але гей, це ваш час).
Застосування шаблонів у Lua дає вам відчуття досвіду з легкого використання регулярних виразів без імпортування цілої бібліотеки. Шеврон (^
) та знак долара ($
) відповідають початку та кінцю рядка відповідно; %p
відповідає будь-якому розділовому знаку. Після того, як ми позбуваємося початкових та кінцевих розділових знаків, ми захоплюємо все інше за допомогою (.*),
і замінюємо весь збіг цією групою захоплення за допомогою " %1"
.
Пам’ятайте, що використання шаблонів у Lua не є настільки потужним, як повноцінні регулярні вирази — наприклад, воно не може рахувати або відступати назад. Ця простота є одночасно благословенням і прокляттям, залежно від того, які лапки ви ловите і де вони ховаються.
Дивіться також
Поглиблено познайомитесь із застосуванням шаблонів у Lua за допомогою книги PiL (Програмування в Lua): http://www.lua.org/pil/20.2.html
Для абсолютної елегантності подивіться, як це роблять інші мови для порівняння, починаючи з str.strip
в Python: https://docs.python.org/3/library/stdtypes.html#str.strip