Строковые функции могут быть вызваны в форме string.имя(s,...) и s:имя(...). Если в качестве аргумента используется константа, то нужно поставить скобки
Функция | Назначение
--|--
string.char(...)|Возвращает строку длиной равной количеству аргументов, в которой каждый символ имеет внутренний цифровой код равный соответствующему аргументу.
string.byte(s[,i])|Возвращает код i-го символа строки (по умолчанию - 1-го).
string.len(s)|Возвращает длину строки, то же что и #s
string.lower(s)|Получает строку и возвращает её копию с заменой всех символов в верхнем регистре на символы в нижнем регистре. Остальные символы не изменяются.
string.upper(s)|Аналогично
string.rep(s, n [, sep])|Возвращает строку, которая состоит из слияния n копий строки s, разделенных строкой sep. Значение по умолчанию для sep это пустая строка.
string.sub(s, i [, j])|Возвращает подстроку s, начинающуюся на i и продолжающуюся до j; i и j могут быть отрицательными. Если j отсутствует, то он подразумевается равным -1 (тоже что и длина строки).
string.reverse(s)|Возвращает строку, в которой символы s идут в обратном порядке.
string.format(format, ...)|Возвращает строку, содержащую форматированную версию аргументов. Форматы в строке format используют те же, что и в sprintf в языке C, но не поддерживаются *, h, L, l, n и p. Дополнительный формат q выводит строку между двойными кавычками.
string.find(s, pattern [, init [, plain]])|Ищет первое совпадение шаблона pattern в строке s. Если совпадение найдено, то find возвращает индексы s, где совпадение начинается и заканчивается; иначе, возвращает nil. Третий опциональный цифровой аргумент init определяет, где начинать поиск; по умолчанию он равен 1. Значение true в качестве четвертого опционального аргумента plain выключает возможности поиска шаблонов, так функция выполняет плоский поиск подстроки, без магических символов в pattern.
string.gmatch(s, pattern)|Возвращает функцию-итератор, которая при каждом вызове возвращает следующие захваченные значения из pattern по строке s.
string.gsub(s, pattern, repl [, n])|Возвращает копию s, в которой все (или первые n, если передано) совпадения шаблона pattern заменены на замещающую строку, определенную параметром repl, который может быть строкой, таблицей или функцией. gsub также возвращает общее число совпадений, как второе значение.
string.match(s, pattern [, init])|Ищет первое совпадение шаблона pattern в строке s. Если находит, то match возвращает захваченные значения из шаблона; иначе возвращает nil. Если pattern не описывает захватов, то возвращается целое совпадение. Третий опциональный цифровой аргумент init определяет, где начинать поиск; по умолчанию он равен 1.
В шаблонах допустимы следующие комбинации:
- x: (где x - не один из метасимволов ^$()%.\[]\*+-?) представляет символ x непосредственно.
- .: (точка) представляет все символы.
- %a: представляет все буквы.
- %c: представляет все управляющие символы.
- %d: представляет все цифры.
- %g: представляет все печатаемые символы, кроме пробела.
- %l: представляет все буквы в нижнем регистре.
- %p: представляет все знаки пунктуации.
- %s: представляет все пробельные символы.
- %u: представляет все буквы в верхнем регистре.
- %w: представляет все алфавитно-цифровые символы.
- %x: представляет все шестнадцатеричные символы.
- %x: (где x - не алфавитно-цифровой символ) представляет символ x. Это стандартный способ кодирования метасимволов. Любой не алфавитно-цифровой символ (включая все знаки пунктуации, даже не мета) можетт предваряться '%', когда используются для представления себя в шаблоне.
- \[набор]: представляет класс, который является объединением всех символов в наборе. Все классы %x, описанные выше, также могут быть включены в набор, как компоненты. Например, \[%w_] (или \[_%w]) представляет все алфавитно-цифровые символы и подчеркивание, \[0-7] представляет восьмеричные цифры, \[0-7%l%-] представляет восьмеричные цифры, буквы в нижнем регистре и символ '-'.
- \[^набор]: представляет отрицание набора, где набор интерпретируется, как описано выше.
Функция | Назначение
--|--
print(...)|Печатает аргументы через \\t, используя функцию tostring для преобразования.
io.input(), io.output()|Стандартный ввод и вывод
io.open(name [, mode])|Функция открывает файл в режиме, определяемым строкой mode ("r","w","a","r+",...). Возвращает новый описатель файла или nil.
io.close(file)|Закрывает файл.
io.lines(name, ...)|Открывает указанный файл и возвращает функцию-итератор file:lines(...)
file:lines(...)|Возвращает функцию итератор, которая при каждом вызове читает файл в соответствии с переданными форматами. Когда формат не передан, использует "l", по умолчанию.
file:read(...)|Читает файл file, в соответствии с переданными форматами, которые определяют, что читать. Для каждого формата, функция возвращает строку или число с прочитанными символами, или nil, если не может прочитать данные в этом формате (по умолчанию "l").
io.read(...)|Чтение из стандартного ввода
file:write(...)|Записывает значение каждого аргумента в file. Аргументы должны быть строками или числами.
io.write(...)|Вывод в стандартный вывод
io.popen(prog [, mode])|Запускает программу prog в отдельном процессе и возвращает описатель файла для чтения данных из этой программы (если mode = "r", по умолчанию) или для записи (mode = "w").
file:flush()|Записать данные из буфера в файл.
Доступны следующие форматы:
* "n": читает число и возвращает его, как вещественное или целое, следуя лексическим соглашениям Lua.
* "a": читает весь файл, начиная с текущей позиции. В конце файла возвращает пустую строку.
* "l": читает следующую строку, пропуская символ конца строки, возвращает nil в конце файла. Это формат по умолчанию.
* "L": читает следующую строку, сохраняя символ конца строки (если есть), возвращает nil в конце файла.
* число: читает строку этой длины в байтах, возвращает nil в конце файла. Если number = 0, ничего не читает и возвращает пустую строку, или nil в конце файла.
Функция | Назначение
--|--
os.clock() | Возвращает время в секундах с момента начала выполнения программы
os.execute([cmd]) | Аналог system в С, выполняет указанную команду и возвращает тройку true/nil, "exit"/"signal", код завершения команды или номер сигнала. Первое значение true означает успешный запуск команды и завершение её с кодом 0, остальные значения позволяют получить более подробную информацию в случае ошибки. При вызове без аргумента возвращает true, если запуск команд возможен, иначе false.
os.exit([e]) | Завершить выполнение скрипта с кодом e, по умолчанию 0.
os.getenv(name) | Возвращает значение переменной среды ОС с именем name или false, если переменная не задана.
os.remove(name)|Удалить файл или пустую папку с именем name. Возвращает true в случае успеха или тройку nil, строку описанием ошибки и код ошибки.
os.rename(oldname, newname)|Переименовать файл или папку. Возвращает true в случае успеха или тройку nil, строку описанием ошибки и код ошибки.
os.setlocale(locale [, category]) |Аналог setlocale в С, устанавливает настройки локали для сравнения строк, шаблонов, вывода чисел и дат. Можно ограничиться одной из категорий "collate", "ctype", "monetary", "numeric", "time", по умолчанию "all". Возвращает название установленной локали. При указании аргумента nil возвращает название без изменения локали.
os.time([table]) | Возвращает текущее время (обычно в секундах от 1 января 1970) или переводит таблицу с компонентами даты и времени (см. os.date) в аналогичные единицы.
os.date([format [,time]])| Возвращает дату и время по указанному формату, текущую или указанную. Формат "*t" возвращает таблицу {year, month, day, hour, min, sec, wday (день недели, 1 - воскресенье), yday (номер дня года), isdst (переход на летнее время)}. Формат "%c" (по умолчанию) возвращает дату и время как строку в соответствии с локалью. Можно указать порядок и разделители между компонентами %Y - год, %m - месяц, %d - день, %H - час, %M - минуты, %S - секунды, %A - день недели, %B - название месяца.
os.difftime(t2, t1)| Возвращает разницу между t2 и t1 в секундах.