Функции для работы со строками

В RQL представлен набор функций, предназначенных для обработки текстовых данных. Функции для поиска в строках, замены в строках, разбиения и слияния строк и массивов рассмотрены отдельно.

Входные аргументы и возвращаемые значения имеют тип String, если в описании функции не указано иное.

Все функции с суффиксом UTF8 предполагают, что входная строка содержит корректный текст в кодировке UTF-8. Если строка не является корректной UTF-8 последовательностью, исключение не генерируется, а результат не определен. Однако функции sparseGramsUTF8() и sparseGramsHashesUTF8() ведут себя иначе — при некорректном UTF-8 генерируют исключение.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL.

Ознакомиться с актуальным списком функций и их поведением можно в официальной документации ClickHouse.

Обратите внимание, что для функций в официальной документации ClickHouse может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии ClickHouse.

Функции работы с длиной и границами строк

Функция Описание

left(s, offset)

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

  • s — строка типа String или FixedString, из которой извлекается подстрока.

  • offset — количество извлекаемых байт типа (U)Int*.

Возвращает:

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

  • для отрицательного offset — подстроку строки s длиной length(s) - |offset| байт, отсчитываемую от начала строки.

  • пустую строку, если длина строки равна 0.

leftPad(string, length[, pad_string])
lpad(string, length[, pad_string])

Дополняет строку string слева пробелами или заданной строкой pad_string (при необходимости несколько раз) до указанной длины length.

  • string — входная строка, которую нужно дополнить.

  • length — длина результирующей строки типа (U)Int*. Если значение меньше длины входной строки, входная строка усекается до length байт.

  • pad_string — необязательный параметр. Строка, которая используется для дополнения входной строки. Если не указана, входная строка дополняется пробелами.

leftPadUTF8(string, length[, pad_string])

Аналогично leftPad(), но строка string должна быть в кодировке UTF-8. Длина такой строки измеряется в кодовых точках.

leftUTF8(s, offset)

Аналогично left(), но строка s должна быть в кодировке UTF-8.

lengthUTF8(s)
CHARACTER_LENGTH(s)
CHAR_LENGTH(s)

Возвращает длину строки s в кодовых точках Unicode. Строка s содержит допустимый текст в кодировке UTF-8.

right(s, offset)

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

  • s — строка типа String или FixedString, из которой извлекается подстрока.

  • offset — количество извлекаемых байт типа (U)Int*.

Возвращает:

  • для положительного offset — подстроку строки s длиной offset байт, отсчитываемую от конца строки.

  • для отрицательного offset — подстроку строки s длиной length(s) - |offset| байт, отсчитываемую от конца строки.

  • пустую строку, если длина строки равна 0.

rightPad(string, length[, pad_string])
rpad(string, length[, pad_string])

Дополняет строку string справа пробелами или заданной строкой pad_string до указанной длины length.

  • string — входная строка, которую нужно дополнить.

  • length — длина результирующей строки типа (U)Int*. Если значение меньше длины входной строки, входная строка усекается до length байт.

  • pad_string — необязательный параметр. Строка, которая используется для дополнения входной строки. Если не указана, входная строка дополняется пробелами.

rightPadUTF8(string, length[, pad_string])

Аналогично rightPad(), но строка string должна быть в кодировке UTF-8. Длина такой строки измеряется в кодовых точках.

rightUTF8(s, offset)

Аналогично right(), но строка s должна быть в кодировке UTF-8.

trimBoth(s[, trim_characters])
trim(s[, trim_characters])

Удаляет указанные символы trim_characters в начале и конце строки s, пока они идут подряд, при этом порядок символов в trim_characters не важен. По умолчанию удаляет стандартные пробельные символы (ASCII), если параметр trim_characters не указан.

  • s — исходная строка.

  • trim_characters — необязательный параметр. Символы, которые нужно удалить. Если не указано, удаляются стандартные пробельные символы (ASCII).

trimLeft(s[, trim_characters])
ltrim(s[, trim_characters])

Удаляет указанные символы trim_characters в начале строки s, пока они идут подряд, при этом порядок символов в trim_characters не важен. По умолчанию удаляет стандартные пробельные символы (ASCII), если параметр trim_characters не указан.

  • s — исходная строка.

  • trim_characters — необязательный параметр. Символы, которые нужно удалить. Если не указано, удаляются стандартные пробельные символы (ASCII).

trimRight(s[, trim_characters])
rtrim(s[, trim_characters])

Удаляет указанные символы trim_characters в конце строки s, пока они идут подряд, при этом порядок символов в trim_characters не важен. По умолчанию удаляет стандартные пробельные символы (ASCII), если параметр trim_characters не указан.

  • s — исходная строка.

  • trim_characters — необязательный параметр. Символы, которые нужно удалить. Если не указано, удаляются стандартные пробельные символы (ASCII).

Функции преобразования регистра

Функция Описание

initcap(s)

Преобразует первую букву каждого слова строки s в верхний регистр, а остальные — в нижний. Слова представляют собой последовательности буквенно-цифровых символов, разделенные небуквенно-цифровыми символами.

Поскольку initcap() преобразует в верхний регистр только первую букву каждого слова, для слов, содержащих апострофы или заглавные буквы, возможен неожиданный результат.

initcapUTF8(s)

Аналогично initcap(), но строка s должна быть в кодировке UTF-8.

Эта функция не определяет язык, поэтому, для некоторых языков результат может быть не совсем корректным. Если длина последовательности байтов UTF-8 различается для верхнего и нижнего регистра кодовой точки, результат для этой кодовой точки может быть некорректным.

lower(s)
lcase(s)

Преобразует строку ASCII s в нижний регистр.

lowerUTF8(s)

Преобразует строку s в кодировке UTF-8 в нижний регистр.

upper(s)
ucase(s)

Преобразует строку ASCII s в верхний регистр.

upperUTF8(s)

Преобразует строку s в кодировке UTF-8 в верхний регистр.

Функции объединения и создания строк

Функция Описание

appendTrailingCharIfAbsent(s, c)

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

concat([s1, s2, …​])

Объединяет любое указанное количество аргументов произвольного типа. Возвращает строку типа Nullable(String). Если значение любого из аргументов равно NULL, функция возвращает NULL. Если аргументы отсутствуют, возвращается пустая строка.

Аргументы типа, отличного от String или FixedString, преобразуются в строки с использованием сериализации по умолчанию. Для лучшей производительности передавайте только String или FixedString.

concatAssumeInjective([s1, s2, …​])

Аналогично concat(), но предполагается, что функция инъективна: разные аргументы дают разные результаты. Это позволяет использовать функцию для оптимизации GROUP BY.

concatWithSeparator(sep[, exp1, exp2, …​])
concat_ws(sep[, exp1, exp2, …​])

Объединяет указанные строки, используя заданный разделитель. Если значение любого из аргументов равно NULL, функция возвращает NULL.

  • sep — разделитель типа const String или const FixedString.

  • exp1, exp2, …​ — аргументы любого типа.

Аргументы типа, отличного от String или FixedString, преобразуются в строки с использованием сериализации по умолчанию. Для лучшей производительности передавайте только String или FixedString.

concatWithSeparatorAssumeInjective(sep[, exp1, exp2, …​ ])

Аналогично concatWithSeparator(), но предполагается, что функция инъективна: разные аргументы дают разные результаты. Это позволяет использовать функцию для оптимизации GROUP BY.

repeat(s, n)

Возвращает строку, содержащую строку s, повторенную n раз. Если n отрицательно, функция возвращает пустую строку.

  • s — строка, которую нужно повторить.

  • n — количество повторений строки типа (U)Int*.

reverseUTF8(s)

Инвертирует последовательность кодовых точек Unicode в строке s в кодировке UTF-8.

space(n)

Возвращает строку, состоящую из пробелов, повторенных n раз. Параметр n типа (U)Int*. Если n <= 0, функция возвращает пустую строку.

Функции поиска, проверки и извлечения подстрок

Функция Описание

basename(expr)

Извлекает конечную часть строки expr после последнего символа косой черты или экранированной обратной косой черты. Если входная строка заканчивается косой или обратной косой чертой, функция возвращает пустую строку. Если в строке нет таких символов, возвращается исходная строка.

Часто используется для извлечения имени файла из пути.

endsWith(s, suffix)

Проверяет, заканчивается ли строка s заданным суффиксом suffix. Возвращает 1, если s оканчивается на suffix, иначе — 0.

endsWithUTF8(s, suffix)

Проверяет, заканчивается ли строка s в кодировке UTF-8 заданным суффиксом suffix. Возвращает 1, если s оканчивается на suffix, иначе — 0.

extractTextFromHTML(s)

Извлекает текстовое содержимое из HTML или XHTML строки s. Возвращает извлеченный текст типа String.

Выполняет:

  • удаление всех HTML/XML-тегов;

  • удаление комментариев ({/* */});

  • удаление элементов script и style вместе с их содержимым;

  • обработку секций CDATA (копируются дословно);

  • корректную обработку и нормализацию пробельных символов.

HTML-сущности не декодируются. При необходимости их следует обрабатывать функцией decodeHTMLComponent().

firstLine(s)

Возвращает первую строку из многострочной входной строки s или всю строку, если в ней нет разделителей строк.

regexpExtract(haystack, pattern[, index])
REGEXP_EXTRACT(haystack, pattern[, index])
REGEXP_SUBSTR(haystack, pattern[, index])

Извлекает первое совпадение с регулярным выражением pattern из строки haystack. Если указать index, функция возвращает указанную захватывающую группу.

  • haystack — исходная строка.

  • pattern — шаблон регулярного выражения типа String. Может содержать несколько групп.

  • index — необязательный параметр. Неотрицательное целое число типа (U)Int*, указывающее, какую группу регулярного выражения нужно извлечь. По умолчанию используется 1, если pattern содержит хотя бы одну захватывающую группу, и 0 (все совпадение), если pattern не содержит захватывающих групп.

startsWith(s, prefix)

Проверяет, начинается ли строка s с заданного префикса prefix. Возвращает 1, если s начинается с prefix, иначе — 0.

startsWithUTF8(s, prefix)

Проверяет, начинается ли строка s в кодировке UTF-8 с заданного префикса prefix. Возвращает 1, если s начинается с prefix, иначе — 0.

substring(s, offset[, length])
byteSlice(s, offset[, length])
mid(s, offset[, length])
substr(s, offset[, length])

Возвращает подстроку строки s, начиная с указанного индекса offset, длиной length байт, если она указана. Индекс начинается с 1. Если offset равен 0, возвращается пустая строка. Если offset отрицательный, подстрока начинается с символов от конца строки.

  • s — исходная строка типа String, FixedString или Enum.

  • offset — начальная позиция подстроки типа (U)Int*.

  • length — необязательный параметр. Максимальная длина подстроки типа (U)Int*.

substringIndex(s, delim, count)
SUBSTRING_INDEX(s, delim, count)

Возвращает подстроку строки s, выделенную по заданному числу вхождений разделителя delim. Если число вхождений count положительное, возвращается подстрока слева от указанного по счету разделителя. Если count отрицательное, возвращается подстрока справа от указанного по счету разделителя. Разделитель не включается в результат.

  • s — исходная строка.

  • delim — символ-разделитель типа String.

  • count — количество вхождений разделителя типа (U)Int*, которое нужно учесть перед извлечением подстроки.

substringIndexUTF8(s, delim, count)

Аналогично substringIndex(), но для кодовых точек Unicode. Строка s должна быть в кодировке UTF-8.

substringUTF8(s, offset[, length])

Аналогично substring(), но для кодовых точек Unicode. Строка s должна быть в кодировке UTF-8.

Функции кодирования и декодирования строк

Функция Описание

base32Decode(encoded)

Возвращает строку, содержащую декодированное значение параметра encoded формата Base32 (RFC 4648). Параметр encoded — столбец или константа типа String для декодирования. Если строка не является корректной строкой в кодировке Base32, генерируется исключение.

base32Encode(plaintext)

Возвращает строку типа String или FixedString в формате Base32 (RFC 4648), содержащую закодированное значение исходного текста plaintext.

base58Decode(encoded[, expected_size])

Возвращает строку, содержащую декодированное значение параметра encoded формата Base58. Если строка не является корректной строкой в кодировке Base58, генерируется исключение.

  • encoded — столбец или константа типа String для декодирования.

  • expected_size — необязательный параметр. Ожидаемый размер результата декодирования в байтах. Если указано 32 или 64, используется оптимизированный декодер; для остальных значений используется универсальный декодер. Значение типа UInt8, UInt16, UInt32 или UInt64.

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

base58Encode(plaintext)

Возвращает строку в формате Base58, содержащую закодированное значение исходного текста plaintext.

base64Decode(encoded)
FROM_BASE64(encoded)

Возвращает строку, содержащую декодированное значение параметра encoded формата Base64 (RFC 4648). Параметр encoded — столбец или константа типа String для декодирования. Вертикальная табуляция (\v) и любые другие символы, не входящие в алфавит Base64, отклоняются. Если строка не является корректной строкой в кодировке Base64, генерируется исключение.

base64Encode(plaintext)
TO_BASE64(plaintext)

Возвращает строку в формате Base64 (RFC 4648), содержащую закодированное значение исходного текста plaintext.

base64URLDecode(encoded)

Возвращает строку, содержащую декодированное значение параметра encoded формата Base64 (RFC 4648) с использованием URL-безопасного алфавита. Стандартный алфавит (+ и /) также принимается при декодировании. Параметр encoded — столбец или константа типа String для декодирования. Вертикальная табуляция (\v) и любые другие символы, не входящие в алфавит Base64, отклоняются. Если строка не является корректной строкой в кодировке Base64, генерируется исключение.

base64URLEncode(plaintext)

Возвращает строку в формате Base64 (RFC 4648) с использованием URL-безопасного алфавита, содержащую закодированное значение исходного текста plaintext.

decodeHTMLComponent(s)

Возвращает строку с декодированными HTML-сущностями строки s.

decodeXMLComponent(s)

Возвращает строку с декодированными XML-сущностями строки s.

encodeXMLComponent(s)

Заменяет специальные символы XML в строке s соответствующими XML-сущностями для вставки в текстовый узел XML или атрибут. Возвращает строку, безопасную для использования в XML-документах.

idnaDecode(s)

Возвращает представление входной строки s в Unicode (UTF-8) в соответствии с механизмом Internationalized Domain Names in Applications (IDNA). В случае ошибки возвращается исходная строка.

Повторное применение функции может не вернуть исходную строку из-за нормализации регистра.

idnaEncode(s)

Возвращает ASCII-представление входной строки s в соответствии с механизмом Internationalized Domain Names in Applications (IDNA). Входная строка должна быть в кодировке UTF-8 и допускать преобразование в ASCII-строку, иначе генерируется исключение.

Повторное применение функции может не вернуть исходную строку из-за нормализации регистра.

punycodeDecode(s)

Возвращает строку s в кодировке UTF-8. Исходная строка должна быть закодирована в Punycode, иначе генерируется исключение.

punycodeEncode(s)

Возвращает строку s в представлении Punycode. Исходная строка должна быть закодирована в UTF-8, иначе поведение не определено.

tryBase32Decode(encoded)

Аналогично base32Decode(), но в случае ошибки возвращается пустая строка.

tryBase58Decode(encoded[, expected_size])

Аналогично base58Decode(), но в случае ошибки возвращается пустая строка.

tryBase64Decode(encoded)

Аналогично base64Decode(), но в случае ошибки возвращается пустая строка.

tryBase64URLDecode(encoded)

Аналогично base64URLDecode(), но в случае ошибки возвращается пустая строка.

tryIdnaEncode(s)

Аналогично idnaEncode(), но в случае ошибки возвращается пустая строка.

tryPunycodeDecode(s)

Аналогично punycodeDecode(), но в случае ошибки возвращается пустая строка.

Функции работы с кодировками и символами

Функция Описание

ascii(s)

Возвращает ASCII-код первого символа строки s в виде Int32. Если s — пустая строка, результат равен 0. Если первый символ не является символом ASCII или не входит в диапазон Latin-1 Supplement UTF-16, результат не определен.

convertCharset(s, from, to)

Возвращает строку s, преобразованную из кодировки from в кодировку to. Все аргументы типа String.

isValidUTF8(s)

Проверяет, является ли набор байтов s типа String корректным текстом в кодировке UTF-8. Возвращает 1, если набор байтов составляет допустимый текст, закодированный в UTF-8, иначе — 0.

normalizeUTF8NFC(str)

Возвращает строку str в кодировке UTF-8 в нормализованной форме C (NFC) для Unicode.

normalizeUTF8NFD(str)

Возвращает строку str в кодировке UTF-8 в нормализованной форме D (NFD) для Unicode.

normalizeUTF8NFKC(str)

Возвращает строку str в кодировке UTF-8 в нормализованной форме KC (NFKC) для Unicode.

normalizeUTF8NFKD(str)

Возвращает строку str в кодировке UTF-8 в нормализованной форме KD (NFKD) для Unicode.

toValidUTF8(s)

Преобразует строку s в корректную UTF-8-последовательность, заменяя любые недопустимые символы UTF-8 символом замены (U+FFFD). Если обнаруживается несколько недопустимых символов подряд, они заменяются одним символом замены.

Функции хэширования и анализа байтов

Функция Описание

CRC32(s)

Вычисляет контрольную сумму CRC32 для строки s, используя полином CRC-32-IEEE 802.3 и начальное значение 0xffffffff (реализация zlib). Возвращает значение типа UInt32.

CRC32IEEE(s)

Вычисляет контрольную сумму CRC32 для строки s с использованием полинома CRC-32-IEEE 802.3. Возвращает значение типа UInt32.

CRC64(s)

Вычисляет контрольную сумму CRC64 для строки s с использованием полинома CRC-64-ECMA. Возвращает значение типа UInt64.

stringBytesEntropy(s)

Вычисляет энтропию Шеннона распределения байтов в строке s. Возвращает значение типа Float64.

stringBytesUniq(s)

Подсчитывает число уникальных байтов в строке s. Возвращает значение типа UInt16.

Функции сравнения и оценки сходства строк

Функция Описание

byteHammingDistance(s1, s2)
mismatches(s1, s2)

Вычисляет расстояние Хэмминга между байтовыми строками s1 и s2. Возвращает значение типа UInt64.

compareSubstrings(s1, s2, s1_offset, s2_offset, num_bytes)

Сравнивает заданные участки строк s1 и s2 в лексикографическом порядке.

  • s1_offset — позиция в s1 (с нумерацией с нуля), с которой начинается сравнение. Значение типа UInt*.

  • s2_offset — позиция в s2 (с нумерацией с нуля), с которой начинается сравнение. Значение типа UInt*.

  • num_bytes — максимальное количество байтов типа UInt* для сравнения в обеих строках. Если s1_offset (или s2_offset) + num_bytes превышает длину входной строки, значение num_bytes будет соответственно уменьшено.

damerauLevenshteinDistance(s1, s2)

Вычисляет расстояние Дамерау — Левенштейна между байтовыми строками s1 и s2. Возвращает значение типа UInt64.

editDistance(s1, s2)
levenshteinDistance(s1, s2)

Вычисляет расстояние редактирования (Левенштейна) между байтовыми строками s1 и s2. Возвращает значение типа UInt64.

editDistanceUTF8(s1, s2)
levenshteinDistanceUTF8(s1, s2)

Вычисляет расстояние редактирования (Левенштейна) между строками s1 и s2 в кодировке UTF-8. Возвращает значение типа UInt64.

jaroSimilarity(s1, s2)

Вычисляет коэффициент сходства Джаро между байтовыми строками s1 и s2. Возвращает значение типа Float64.

jaroWinklerSimilarity(s1, s2)

Вычисляет коэффициент сходства Джаро — Винклера между байтовыми строками s1 и s2. Возвращает значение типа Float64.

soundex(s)

Возвращает код Soundex типа String для входной строки s.

stringJaccardIndex(s1, s2)

Вычисляет индекс сходства Жаккара для байтовых строк s1 и s2. Возвращает значение типа Float64.

stringJaccardIndexUTF8(s1, s2)

Вычисляет индекс сходства Жаккара для строк s1 и s2 в кодировке UTF-8. Возвращает значение типа Float64.

Функции работы с N-граммами

Функция Описание

sparseGrams(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])

Находит все подстроки заданной строки s длиной не менее n, для которых хэши (n-1)-грамм на границах подстроки строго больше хэшей любой (n-1)-граммы внутри нее. Использует CRC32 в качестве хэш-функции. Возвращает массив извлеченных подстрок типа Array(String).

  • s — входная строка.

  • min_ngram_length — необязательный параметр. Минимальная длина извлекаемой n-граммы типа UInt*. Значение по умолчанию и минимально допустимое значение — 3.

  • max_ngram_length — необязательный параметр. Максимальная длина извлекаемой n-граммы типа UInt*. Значение по умолчанию — 100. Должно быть не меньше min_ngram_length.

  • min_cutoff_length — необязательный параметр. Если указано, возвращаются только n-граммы длиной типа UInt* не меньше min_cutoff_length. Значение по умолчанию совпадает с min_ngram_length. Должно быть не меньше min_ngram_length и не больше max_ngram_length.

sparseGramsHashes(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])

Находит хэши всех подстрок заданной строки s длиной не менее n, у которых хэши (n-1)-грамм на границах подстроки строго больше хэшей любой (n-1)-граммы внутри подстроки. Использует CRC32 в качестве хэш-функции. Возвращает массив CRC32-хэшей выбранных подстрок типа Array(UInt32).

  • s — входная строка.

  • min_ngram_length — необязательный параметр. Минимальная длина извлекаемой n-граммы типа UInt*. Значение по умолчанию и минимально допустимое значение — 3.

  • max_ngram_length — необязательный параметр. Максимальная длина извлекаемой n-граммы типа UInt*. Значение по умолчанию — 100. Должно быть не меньше min_ngram_length.

  • min_cutoff_length — необязательный параметр. Если указано, возвращаются только n-граммы длиной типа UInt* не меньше min_cutoff_length. Значение по умолчанию совпадает с min_ngram_length. Должно быть не меньше min_ngram_length и не больше max_ngram_length.

sparseGramsHashesUTF8(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])

Аналогично sparseGramsHashes(), но строка s должна быть в кодировке UTF-8. В отличие от других UTF-8 функций, при некорректном UTF-8 генерируется исключение, а не возвращается неопределенный результат.

sparseGramsUTF8(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])

Аналогично sparseGrams(), но строка s должна быть в кодировке UTF-8. В отличие от других UTF-8 функций, при некорректном UTF-8 генерируется исключение, а не возвращается неопределенный результат.

Функции массивов, применимые к строкам

Некоторые функции для работы с массивами в ClickHouse являются полиморфными и могут применяться к строкам. Ниже приведены функции из раздела массивов, которые поддерживают строковые аргументы.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL.

Ознакомиться с актуальным списком функций и их поведением можно в официальной документации ClickHouse.

Обратите внимание, что для функций в официальной документации ClickHouse может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии ClickHouse.

Функция Описание

empty(s)

Проверяет, является ли входная строка s пустой. Возвращает 1 для пустой строки, иначе — 0.

Функция также поддерживает работу с типами Array(T) и UUID.

length(s)
CARDINALITY(s)
OCTET_LENGTH(s)

Вычисляет длину строки s в байтах с учетом нулевых байтов ASCII (NULL). Возвращает значение типа UInt64.

Функция также поддерживает работу с другими типами данных:

  • для типа Array(T) возвращает количество элементов в массиве;

  • для типа QBit возвращает размерность вектора.

При передаче аргумента типа FixedString или QBit функция вычисляется как константное выражение.

Длина строки в байтах отличается от количества символов Unicode. Для точного подсчета символов используйте функцию lengthUTF8().

notEmpty(s)

Проверяет, является ли входная строка s непустой. Возвращает 1 для непустой строки или 0 для пустой.

Функция также поддерживает работу с типами Array(T) и UUID.

reverse(s)

Изменяет порядок символов в исходной строке s на обратный.

Функция также поддерживает работу с массивами типа Array(T).

Была ли полезна эта страница?

Обратная связь