string library

string.byte (s [, i [, j]])

Возвращает внутренние цифровые коды символов s[i], s[i+1], …, s[j]. По умолчанию i = 1; j = i. Эти индексы следуют тем же правилам, что и в функции string.sub.

Цифровые коды не обязательно портабельны между платформами.

string.char (···)

Получает ноль или более целых. Возвращает строку длиной равной количеству аргументов, в которой каждый символ имеет внутренний цифровой код равный соответствующему аргументу.

Цифровые коды не обязательно портабельны между платформами.

string.dump (function [, strip])

Возвращает строку содержащую бинарное представление (бинарный кусок) переданной функции, так что load для этой строки возвращает копию функции (но с новыми upvalue). Если strip = true, бинарное представление может не включать всю отладочную информацию о функции, для уменьшения размера.

Функции с upvalue сохраняют только количество upvalue. При загрузке, эти upvalue получают свежие экземпляры, содержащие nil. (Вы можете использовать отладочную библиотеку, чтобы сохранить и перезагрузить upvalue функции в том виде, как вам нужно.)

string.find (s, pattern [, init [, plain]])

Ищет первое совпадение шаблона pattern в строке s. Если совпадение найдено, то find возвращает индексы s, где совпадение начинается и заканчивается; иначе, возвращает nil. Третий опциональный цифровой аргумент init определяет, где начинать поиск; по умолчанию он равен 1 и может быть отрицательным. Значение true в качестве четвертого опционального аргумента plain выключает возможности поиска шаблонов, так функция выполняет плоский поиск подстроки, без магических символов в pattern. Учтите, что если передан plain, то должен быть передан и init.

Если шаблон имеет захваты (capture), то при успешном совпадении захваченные значения также возвращаются, после двух индексов.

string.format (formatstring, ···)

Возвращает форматированную версию переменного количества аргументов, следуя описанию в первом аргументе (должен быть строкой). formatstring — следует тем же правилам, что и в функции sprintf в ISO C. Только отличается тем, что опции/модификаторы *, h, L, l, n и p не поддерживаются, и тем, что имеет дополнительную опцию q. Опция q форматирует строку между двойными кавычками и использует управляющие символы, когда необходимо гарантировать, что строка может быть прочитана Lua интерпретатором обратно. Например, вызов

 string.format('%q', 'a string with "quotes" and \n new line')

может выдать строку:

 "a string with \"quotes\" and \
  new line"

Опции A, a, E, e, f, G и g — все ожидают цифровой аргумент. Опции c, d, i, o, u, X и x — ожидают целое. Опция q — ожидает строку. Опция s — ожидает строку без встроенных нулей; если аргумент не строка, он конвертируется следуя тем же правилам, что и в tostring.

Когда Lua скомпилирована с не C99 компилятором, опции A и a (шестнадцатиричные вещественные числа) не поддерживают модификаторы (флаги, ширина, длина).

string.gmatch (s, pattern)

Возвращает функцию-итератор, которая при каждом вызове возвращает следующие захваченные значения из pattern по строке s. Если pattern не определяет захватов, то в каждом вызове возвращается целое совпадение.

Например, следующий цикл будет перебирать все слова из строки s, печатая по одному в строке:

 s = "hello world from Lua"
 for w in string.gmatch(s, "%a+") do
   print(w)
 end

Следующий пример собирает в таблице все пары key=value из строки:

 t = {}
 s = "from=world, to=Lua"
 for k, v in string.gmatch(s, "(%w+)=(%w+)") do
   t[k] = v
 end

Для этой функции, символ ‘^‘ в начале шаблона не работает как якорь, т.к. это мешает итерации.

string.gsub (s, pattern, repl [, n])

Возвращает копию s, в которой все (или первые n, если передано) совпадения шаблона pattern заменены на замещающую строку, определенную параметром repl, который может быть строкой, таблицей или функцией. gsub также возвращает общее число совпадений, как второе значение. Имя gsub происходит от Global SUBstitution (глобальная подстановка).

Если repl это строка, то её значение используется для замены. Символ % работает, как управляющий символ: любая последовательность в repl в виде %d, с d между 1 и 9, соответствует d-ой захваченной подстроке. Последовательность %0 соответствует полному совпадению. Последовательность %% соответствует одному символу %.

Если repl это таблица, то таблица запрашивается для каждого совпадения, используя первое захваченное значение, как ключ.

Если repl это функция, то эта функция вызывается для каждого совпадения, все захваченные подстроки передаются в качестве аргументов, по порядку.

В любом случае, если шаблон не имеет захватов, то он ведет себя так, будто весь шаблон находится в захвате.

Если значение, возвращенное из табличного запроса или из функции, это строка или число, то оно используется, как замещающая строка; иначе, если это false или nil, то замена не производится (т.е. оригинальное содержимое совпадения сохраняется в строке).

Несколько примеров:

 x = string.gsub("hellod", "(%w+)", "%1 %1")
 --> x="hello hello world world"

 x = string.gsub("hellod", "%w+", "%0 %0", 1)
 --> x="hello hello world"

 x = string.gsub("hellod from Lua", "(%w+)%s*(%w+)", "%2 %1")
 --> x="world hello Lua from"

 x = string.gsub("homeOME, user = $USER", "%$(%w+)", os.getenv)
 --> x="home = /home/roberto, user = roberto"

 x = string.gsub("4+5eturn 4+5$", "%$(.-)%$", function (s)
       return load(s)()
     end)
 --> x="4+5 = 9"

 local t = {name="lua", version="5.3"}
 x = string.gsub("$name-$version.tar.gz$(%w+)", t)
 --> x="lua-5.3.tar.gz"  

string.len (s)

Получает строку и возвращает её длину. Пустая строка "" имеет длину 0. Встроенные нули считаются, так "a\000bc\000" имеет длину 5.

string.lower (s)

Получает строку и возвращает её копию с заменой всех символов в верхнем регистре на символы в нижнем регистре. Остальные символы не изменяются. Определение какие символы в верхнем регистре зависит от текущей локали.

string.match (s, pattern [, init])

Ищет первое совпадение шаблона pattern в строке s. Если находит, то match возвращает захваченные значения из шаблона; иначе возвращает nil. Если pattern не описывает захватов, то возвращается целое совпадение. Третий опциональный цифровой аргумент init определяет, где начинать поиск; по умолчанию он равен 1, и может быть отрицательным.

string.rep (s, n [, sep])

Возвращает строку, которая состоит из слияния n копий строки s, разделенных строкой sep. Значение по умолчанию для sep это пустая строка (т.е. нет разделителя). Возвращает пустую строку, если n отрицательное значение.

string.reverse (s)

Возвращает строку, в которой символы s идут в обратном порядке.

string.sub (s, i [, j])

Возвращает подстроку s, начинающуюся на i и продолжающуюся до j; i и j могут быть отрицательными. Если j отсутствует, то он подразумевается равным -1 (тоже что и длина строки). В частности, вызов string.sub(s,1,j) возвращает префикс s длиной j, и string.sub(s, -i) возвращает суффикс s длиной i.

Если после трансляции отрицательных индексов i < 1, он корректируется до 1. Если j больше длины строки, он корректируется до этой длины. Если после этих преобразований i > j, функция возвращает пустую строку.

string.upper (s)

Получает строку и возвращает её копию с заменой всех символов в нижнем регистре на символы в верхнем регистре. Остальные символы не изменяются. Определение какие символы в нижнем регистре зависит от текущей локали.

results matching ""

    No results matching ""