Функции для работы со строками позволяют анализировать, преобразовывать и манипулировать текстовыми данными.
str.lenОпределяет длину строки в символах.
Сигнатура: str.len(str string) int
Аргументы: str — строка, длину которой нужно определить.
Результат: Целое число, равное количеству символов в строке.
Пример использования:
$str = "Какая-то строка"
$len = str.len($str) // $len будет содержать 15
str.lowerПреобразует все символы строки в нижний регистр.
Сигнатура: str.lower(str string) string
Аргументы: str — строка, которую необходимо преобразовать.
Результат: Строка, все символы которой находятся в нижнем регистре.
Пример использования:
$str = "СтРоКа"
$lower = str.lower($str) // $lower будет содержать "строка"
str.upperПреобразует все символы строки в верхний регистр.
Сигнатура: str.upper(str string) string
Аргументы: str — строка, которую необходимо преобразовать.
Результат: Строка, все символы которой находятся в верхнем регистре.
Пример использования:
$str = "СтРоКа"
$upper = str.upper($str) // $lower будет содержать "СТРОКА"
str.ucfirstПреобразует первый символ строки в верхний регистр.
Сигнатура: str.ucfirst(str string) string
Аргументы: str — строка, первый символ которой необходимо преобразовать.
Результат: Строка с первым символом в верхнем регистре.
Пример использования:
$str = str.ucfirst("строка") // $str будет содержать "Строка"
str.lcfirstПреобразует первый символ строки в нижний регистр.
Сигнатура: str.lcfirst(str string) string
Аргументы: str — строка, первый символ которой необходимо преобразовать.
Результат: Строка с первым символом в нижнем регистре.
Пример использования:
$str = str.lcfirst("Строка") // $str будет содержать "строка"
str.letterВозвращает символ строки по указанной позиции.
Сигнатура: str.letter(str string, index int) string
Аргументы:
str — строка, символ которой требуется получить.index — позиция символа в строке (начиная с 0). Если отрицательная, отсчет начинается с конца строки.Результат: Строка, содержащая символ по указанной позиции, или пустая строка, если символа с такой позицией не существует.
Пример использования:
$str = "Слово"
$firstLetter = str.letter($str, 0) // Первая буква
$lastLetter = str.letter($str, -1) // Последняя буква
str.concatОбъединяет две строки в одну.
Сигнатура: str.concat(strings ...string) string
Аргументы: strings — строки для объединения.
Результат: Новая строка, состоящая из первой строки, к которой справа добавлена вторая.
Пример использования:
$str1 = "один"
$str2 = "два"
$str = str.concat($str1, $str2) // $str будет содержать "одиндва"
str.formatФорматирует строку, подставляя значения в указанные плейсхолдеры.
Сигнатура: str.format(format string, values… any) string
Аргументы:
format — строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения, и спецификаторы преобразования, каждый из которых требует передачи своего параметра. Спецификатор преобразования соответствует прототипу: %[argnum$][flags][width][.precision]specifier.values — значения, которые будут подставлены в формат.Номер аргумента (argnum): Целое число, за которым следует знак $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.
Флаги: Флаги изменяют поведение форматирования:
- — выравнивание по левому краю (по умолчанию — по правому).+ — всегда отображать знак числа (+ или -).0 — дополнение числа нулями слева.'символ — дополнение указанным символом. Ширина: Указывает минимальное количество символов для вывода значения. Если значение короче, оно будет дополнено пробелами или указанным символом.
Точность: Точность в форматировании строк указывается после . и определяет, сколько символов будет выведено или как будет округлено значение.
f, e, E, F) точность задает количество цифр после десятичной точки. По умолчанию используется 6 знаков после запятой.g, G, h, H точность определяет максимальное количество значащих цифр.s) точность ограничивает максимальное количество символов, которые будут выведены.Если после точки не указано значение точности, считается, что точность равна 0.
Также можно использовать символ * вместо конкретного числа для задания точности. В этом случае значение точности передается как дополнительный аргумент перед основным значением.
Спецификаторы: Определяют тип и формат выводимого значения:
% — символ процента. Аргументы не требуются.b — аргумент рассматривается как целое число и печатается в бинарном представлении.c — аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.d — аргумент рассматривается как целое число и печатается как целое число со знаком.e — аргумент считается за число в научной нотации (т. е. 1.2e+2).E — аргумент аналогичен спецификатору e, но с заглавным символом (т. е. 1.2E+2).f — аргумент считается за число с плавающей точкой (с учетом локали).F — аргумент считается за число с плавающей точкой (без учета локали).g — Общий формат. Пусть P равно точности, если точность не равна нулю, 6, если точность не задали, или 1, если точность равна 0. Тогда, если преобразование со стилем «E» будет иметь показатель степени X: Если P > X ≥ −4, преобразование будет в стиле «f» и точность будет P - (X + 1). Иначе преобразование будет в стиле «e» и точность будет P - 1.G — аргумент аналогичен спецификатору g, но использует спецификаторы E и f.h — аргумент аналогичен спецификатору g, но использует спецификатор F.H — аргумент аналогичен спецификатору g, но использует спецификаторы E и F.o — аргумент рассматривается как целое число и печатается в восьмеричном представлении.s — аргумент рассматривается и печатается как строка.u — аргумент рассматривается как целое число и печатается как беззнаковое целое число.x — аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).X — аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).Спецификатор
cигнорирует спецификаторы преобразования дополнения и ширины. Попытка использовать комбинацию спецификаторов строки и ширины с кодировками, которые требуют больше одного байта на символ, иногда дает неожиданные результаты.
Возвращаемое значение: string — отформатированная строка.
Пример использования:
str.format("test: %s", "Привет")
// Вернет: "test: Привет"
str.format("%b, %x, %u", 10, 20, 30)
// Вернет: "1010, 14, 30"
codec.urlEncodeПреобразует строку в формат, безопасный для передачи в интернете. Кодирует символы, не входящие в разрешенный набор, в escape-последовательности согласно RFC 3986.
Escape-последовательность — это способ записать символ, который нельзя вставить в ссылку напрямую.
Например, ! заменяется на %21. Так строка Привет! превращается в %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%21.
Сигнатура: codec.urlEncode(str string) string
Аргументы: str — строка, которую нужно закодировать.
Результат: Строка, в которой все запрещенные символы заменены на escape-последовательности в формате %XX.
Пример использования:
$encoded = codec.urlEncode("Привет!")
// $encoded будет содержать строку "%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%21"
codec.urlDecodeПреобразует строку, закодированную согласно RFC 3986, в обычный текст.
Сигнатура: codec.urlDecode(str string) string
Аргументы: str — строка с кодами специальных символов (escape-последовательностями).
Результат: Обычная строка, полученная после декодирования.
Пример использования:
$decoded = codec.urlDecode("%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%21")
// $decoded будет содержать строку "Привет!"
$decoded = codec.urlDecode("%%")
// $decoded будет содержать "%%"
str.splitРазбивает строку на части, используя separator в качестве разделителя.
Сигнатура: str.split(str string, separator string = "", limit int = 0) List
Аргументы:
str — строка для разделения.separator — разделитель. Если задана пустая строка, строка разбивается на отдельные символы.limit — необязательный параметр, равный максимальному количеству частей, на которые будет разбита строка:
str.Результат: список подстрок, на которые была разбита строка.
Пример использования:
$letters = str.split("абвгде") // $letters будет содержать список букв слова
$words = str.split("один два три", " ") // $words будет содержать список слов
$words = str.split("один два три", " ", 2) // $words будет содержать ["один", "два три"]
$words = str.split("один два три", " ", -1) // $words будет содержать ["один", "два"]
str.firstВозвращает символ строки по указанной позиции с начала строки.
Сигнатура: str.first(str string, index int = 0) string
Аргументы:
str — строка, из которой нужно получить символ;index — целое число, определяющее позицию символа (начиная с 0). Отрицательные значения приводятся к положительным. По умолчанию — 0.Результат: Строка с одним символом, соответствующим позиции. Если позиция выходит за пределы строки, возвращается пустая строка.
Пример использования:
$str = "Слово"
$firstLetter = str.first($str) // Первая буква
$secondLetter = str.first($str, 1) // Вторая буква
str.lastВозвращает символ строки по указанной позиции с конца.
Сигнатура: str.last(str string, index int = 0) string
Аргументы:
str — строка, из которой нужно получить символ;index — целое число, определяющее позицию символа с конца (начиная с 0). Отрицательные значения приводятся к положительным. По умолчанию — 0.Результат: Строка с одним символом, соответствующим позиции. Если позиция выходит за пределы строки, возвращается пустая строка.
Пример использования:
$str = "Слово"
$lastLetter = str.last($str) // Последняя буква
$penultLetter = str.last($str, 1) // Предпоследняя буква
str.subВозвращает часть строки, начиная с указанной позиции и заданной длины.
Сигнатура: str.sub(str string, offset int, length int = nil) string
Аргументы:
str — исходная строка;offset — позиция начала подстроки:
length — длина подстроки:
Результат: Строка, содержащая подстроку, либо пустая строка, если заданные параметры выходят за границы исходной строки.
Пример использования:
$sub = str.sub("abcdef", 1) // $sub равен bcdef
$sub = str.sub("abcdef", 1, 3) // $sub равен bcd
$sub = str.sub("abcdef", 0, 4) // $sub равен abcd
$sub = str.sub("abcdef", 0, 8) // $sub равен abcdef
$sub = str.sub("abcdef", -1, 1) // $sub равен f
$sub = str.sub("abcdef", -1) // $sub равен f
$sub = str.sub("abcdef", -2) // $sub равен ef
$sub = str.sub("abcdef", -3, 1) // $sub равен d
$sub = str.sub("abcdef", 0, -1) // $sub равен abcde
$sub = str.sub("abcdef", 2, -1) // $sub равен cde
$sub = str.sub("abcdef", 4, -4) // $sub равен пустой строке
$sub = str.sub("abcdef", -3, -1) // $sub равен de
str.joinбъединяет элементы списка, кортежа или словаря в строку с указанным разделителем.
Сигнатура: str.join(arr Collection, separator string = "") string
Аргументы:
arr — коллекция элементов для объединения (список, кортеж или ассоциативный массив);separator — строка-разделитель между элементами. По умолчанию — пустая строка.Результат: Новая строка, составленная из элементов коллекции, разделённых указанной строкой.
Пример использования:
$str = str.join([1, 2, 3, 4, 5], "-") // $str будет содержать "1-2-3-4-5"
$str = str.join(("a", "b", "c")) // $str будет содержать "abc"
$str = str.join({"a": "один", "b": "два"}, " + ") // $str будет содержать "один + два"
$str = str.join(["одно"], "/") // $str будет содержать "одно"
$str = str.join([], "/") // $str будет содержать ""
str.replaceИщет все вхождения подстроки в строке и заменяет их на указанную строку.
Сигнатура: str.replace(str string, search string, replace string) string
Аргументы:
str — исходная строка, в которой выполняется замена;search — подстрока, которую нужно заменить;replace — строка, на которую нужно заменить найденные вхождения.Результат: Новая строка, в которой все вхождения search заменены на replace.
Пример использования:
$str = str.replace("мама мыла раму", "рам", "Ан") // $str содержит "мама мыла Анну"
str.rreplaceИщет все вхождения, соответствующие регулярному выражению, и заменяет их на заданную строку.
Сигнатура: str.rreplace(str string, pattern string, replace string) string
Аргументы:
str — строка, в которой выполняется замена;pattern — регулярное выражение, задающее шаблон поиска;replace — строка, на которую будут заменены найденные соответствия.Результат: Новая строка, в которой все соответствия pattern заменены на replace.
Используются регулярные выражения, совместимые с Perl (PCRE).
Документация PCRE, онлайн-редактор.
Пример использования:
$str = str.rreplace("раз 1, два 2, три 3", "/[0-9]/", "") // $str содержит "раз, два, три"
str.matchПроверяет, соответствует ли строка заданному регулярному выражению.
Сигнатура: str.match(str string, pattern string) bool
Аргументы:
str — строка для проверки;pattern — регулярное выражение для сопоставления.Результат: Возвращает true, если строка соответствует выражению, и false — если не соответствует.
Используются регулярные выражения, совместимые с Perl (PCRE). Документация PCRE, онлайн-редактор.
Пример использования:
$isIntNumber = str.match("1.234", "/^[0-9]+$/") // $isIntNumber будет равен false
$isIntNumber = str.match("1234", "/^[0-9]+$/") // $isIntNumber будет равен true
str.distanceВычисляет степень сходства двух строк как число от 0 до 1.
Сигнатура: str.distance(str1 string, str2 string) number
Аргументы:
str1 — первая строка для сравнения;str2 — вторая строка для сравнения.Результат: Число от 0 до 1:
Функция использует метрику Word Error Rate (WER).
Пример использования:
$d = str.distance("", "abc") // $d равен 0
$d = str.distance("Да", "да") // $d равен 1
$d = str.distance("корыто", "открыто") // $d равен 0.571
$d = str.distance("Да, верно", "таверна") // $d равен 0.625
$d = str.distance("жутко косые бананы", "жуй кокосы, ешь бананы") // $d равен 0.714
$d = str.distance("сошел с ума от раны", "Пошел он в пусурманы") // $d равен 0.45
$d = str.distance("ёж", "дезоксирибонуклеиновая кислота") // $d равен 0
str.firstВозвращает символ строки по указанной позиции с начала строки.
Сигнатура: str.first(str string, index int = 0) string
Аргументы:
str — строка, из которой нужно получить символ;index — целое число, определяющее позицию символа (начиная с 0). Отрицательные значения приводятся к положительным. По умолчанию — 0.Результат: Строка с одним символом, соответствующим позиции. Если позиция выходит за пределы строки, возвращается пустая строка.
Пример использования:
$str = "Слово"
$firstLetter = str.first($str) // Первая буква
$secondLetter = str.first($str, 1) // Вторая буква
str.lastВозвращает символ строки по указанной позиции с конца.
Сигнатура: str.last(str string, index int = 0) string
Аргументы:
str — строка, из которой нужно получить символ;index — целое число, определяющее позицию символа с конца (начиная с 0). Отрицательные значения приводятся к положительным. По умолчанию — 0.Результат: Строка с одним символом, соответствующим позиции. Если позиция выходит за пределы строки, возвращается пустая строка.
Пример использования:
$str = "Слово"
$lastLetter = str.last($str) // Последняя буква
$penultLetter = str.last($str, 1) // Предпоследняя буква
str.subВозвращает часть строки, начиная с указанной позиции и заданной длины.
Сигнатура: str.sub(str string, offset int, length int = nil) string
Аргументы:
str — исходная строка;offset — позиция начала подстроки:
length — длина подстроки:
Результат: Строка, содержащая подстроку, либо пустая строка, если заданные параметры выходят за границы исходной строки.
Пример использования:
$sub = str.sub("abcdef", 1) // $sub равен bcdef
$sub = str.sub("abcdef", 1, 3) // $sub равен bcd
$sub = str.sub("abcdef", 0, 4) // $sub равен abcd
$sub = str.sub("abcdef", 0, 8) // $sub равен abcdef
$sub = str.sub("abcdef", -1, 1) // $sub равен f
$sub = str.sub("abcdef", -1) // $sub равен f
$sub = str.sub("abcdef", -2) // $sub равен ef
$sub = str.sub("abcdef", -3, 1) // $sub равен d
$sub = str.sub("abcdef", 0, -1) // $sub равен abcde
$sub = str.sub("abcdef", 2, -1) // $sub равен cde
$sub = str.sub("abcdef", 4, -4) // $sub равен пустой строке
$sub = str.sub("abcdef", -3, -1) // $sub равен de
str.joinбъединяет элементы списка, кортежа или словаря в строку с указанным разделителем.
Сигнатура: str.join(arr Collection, separator string = "") string
Аргументы:
arr — коллекция элементов для объединения (список, кортеж или ассоциативный массив);separator — строка-разделитель между элементами. По умолчанию — пустая строка.Результат: Новая строка, составленная из элементов коллекции, разделённых указанной строкой.
Пример использования:
$str = str.join([1, 2, 3, 4, 5], "-") // $str будет содержать "1-2-3-4-5"
$str = str.join(("a", "b", "c")) // $str будет содержать "abc"
$str = str.join({"a": "один", "b": "два"}, " + ") // $str будет содержать "один + два"
$str = str.join(["одно"], "/") // $str будет содержать "одно"
$str = str.join([], "/") // $str будет содержать ""
str.replaceИщет все вхождения подстроки в строке и заменяет их на указанную строку.
Сигнатура: str.replace(str string, search string, replace string) string
Аргументы:
str — исходная строка, в которой выполняется замена;search — подстрока, которую нужно заменить;replace — строка, на которую нужно заменить найденные вхождения.Результат: Новая строка, в которой все вхождения search заменены на replace.
Пример использования:
$str = str.replace("мама мыла раму", "рам", "Ан") // $str содержит "мама мыла Анну"
str.rreplaceИщет все вхождения, соответствующие регулярному выражению, и заменяет их на заданную строку.
Сигнатура: str.rreplace(str string, pattern string, replace string) string
Аргументы:
str — строка, в которой выполняется замена;pattern — регулярное выражение, задающее шаблон поиска;replace — строка, на которую будут заменены найденные соответствия.Результат: Новая строка, в которой все соответствия pattern заменены на replace.
Используются регулярные выражения, совместимые с Perl (PCRE).
Документация PCRE, онлайн-редактор.
Пример использования:
$str = str.rreplace("раз 1, два 2, три 3", "/[0-9]/", "") // $str содержит "раз, два, три"
str.matchПроверяет, соответствует ли строка заданному регулярному выражению.
Сигнатура: str.match(str string, pattern string) bool
Аргументы:
str — строка для проверки;pattern — регулярное выражение для сопоставления.Результат: Возвращает true, если строка соответствует выражению, и false — если не соответствует.
Используются регулярные выражения, совместимые с Perl (PCRE). Документация PCRE, онлайн-редактор.
Пример использования:
$isIntNumber = str.match("1.234", "/^[0-9]+$/") // $isIntNumber будет равен false
$isIntNumber = str.match("1234", "/^[0-9]+$/") // $isIntNumber будет равен true
str.distanceВычисляет степень сходства двух строк как число от 0 до 1.
Сигнатура: str.distance(str1 string, str2 string) number
Аргументы:
str1 — первая строка для сравнения;str2 — вторая строка для сравнения.Результат: Число от 0 до 1:
Функция использует метрику Word Error Rate (WER).
Пример использования:
$d = str.distance("", "abc") // $d равен 0
$d = str.distance("Да", "да") // $d равен 1
$d = str.distance("корыто", "открыто") // $d равен 0.571
$d = str.distance("Да, верно", "таверна") // $d равен 0.625
$d = str.distance("жутко косые бананы", "жуй кокосы, ешь бананы") // $d равен 0.714
$d = str.distance("сошел с ума от раны", "Пошел он в пусурманы") // $d равен 0.45
$d = str.distance("ёж", "дезоксирибонуклеиновая кислота") // $d равен 0