Перейти к основному содержимому
Перейти к основному содержимому

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

Функции для поиска в строках и для замены в строках описаны отдельно.

empty

Проверяет, является ли входная строка пустой. Строка считается непустой, если она содержит хотя бы один байт, даже если этот байт — пробел или нулевой байт.

Функция также доступна для массивов и UUID.

Синтаксис

Аргументы

Возвращаемое значение

  • Возвращает 1 для пустой строки или 0 для непустой строки. UInt8.

Пример

Результат:

notEmpty

Проверяет, является ли входная строка непустой. Строка считается непустой, если она содержит хотя бы один байт, даже если этот байт — пробел или нулевой байт.

Функция также доступна для массивов и UUID.

Синтаксис

Аргументы

Возвращаемое значение

  • Возвращает 1 для непустой строки или 0 для пустой строки. UInt8.

Пример

Результат:

length

Возвращает длину строки в байтах, а не в символах или кодовых точках Unicode. Функция также работает для массивов.

Псевдоним: OCTET_LENGTH

Синтаксис

Параметры

Возвращаемое значение

  • Длина строки или массива s в байтах. UInt64.

Пример

Запрос:

Результат:

Запрос:

Результат:

lengthUTF8

Возвращает длину строки в кодовых точках Unicode, а не в байтах или символах. Предполагается, что строка содержит корректно закодированный текст в UTF-8. Если это предположение нарушается, исключение не возникает, а результат остается неопределенным.

Псевдонимы:

  • CHAR_LENGTH
  • CHARACTER_LENGTH

Синтаксис

Параметры

  • s — Строка, содержащая корректно закодированный текст в UTF-8. Строка.

Возвращаемое значение

  • Длина строки s в кодовых точках Unicode. UInt64.

Пример

Запрос:

Результат:

left

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

Синтаксис

Параметры

  • s — Строка, из которой необходимо получить подстроку. Строка или FixedString.
  • offset — Количество байт смещения. (U)Int*.

Возвращаемое значение

  • Для положительного offset: Подстрока s с offset байт, начиная слева.
  • Для отрицательного offset: Подстрока s с length(s) - |offset| байт, начиная слева.
  • Пустая строка, если length равно 0.

Пример

Запрос:

Результат:

Запрос:

Результат:

leftUTF8

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

Синтаксис

Параметры

  • s — UTF-8 закодированная строка, из которой необходимо получить подстроку. Строка или FixedString.
  • offset — Количество байт смещения. (U)Int*.

Возвращаемое значение

  • Для положительного offset: Подстрока s с offset байт, начиная слева.
  • Для отрицательного offset: Подстрока s с length(s) - |offset| байт, начиная слева.
  • Пустая строка, если length равно 0.

Пример

Запрос:

Результат:

Запрос:

Результат:

leftPad

Дополняет строку слева пробелами или заданной строкой (многоразово, если необходимо) до достижения указанной length.

Синтаксис

Псевдоним: LPAD

Аргументы

  • string — Входная строка, которую необходимо дополнить. Строка.
  • length — Длина результирующей строки. UInt или Int. Если значение меньше длины входной строки, то входная строка укорочена до length символов.
  • pad_string — Строка, которой будет дополнена входная строка. Строка. Необязательно. Если не указано, то входная строка дополнится пробелами.

Возвращаемое значение

  • Строка, дополненная слева до указанной длины. Строка.

Пример

Результат:

leftPadUTF8

Дополняет строку слева пробелами или заданной строкой (многоразово, если необходимо) до достижения указанной длины. В отличие от leftPad, который измеряет длину строки в байтах, длина строки измеряется в кодовых точках.

Синтаксис

Аргументы

  • string — Входная строка, которую необходимо дополнить. Строка.
  • length — Длина результирующей строки. UInt или Int. Если значение меньше длины входной строки, то входная строка укорочена до length символов.
  • pad_string — Строка, которой будет дополнена входная строка. Строка. Необязательно. Если не указано, то входная строка дополнится пробелами.

Возвращаемое значение

  • Строка, дополненная слева до указанной длины. Строка.

Пример

Результат:

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

Синтаксис

Параметры

  • s — Строка, из которой необходимо получить подстроку. Строка или FixedString.
  • offset — Количество байт смещения. (U)Int*.

Возвращаемое значение

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

Пример

Запрос:

Результат:

Запрос:

Результат:

rightUTF8

Возвращает подстроку UTF-8 закодированной строки s с заданным offset, начиная с правой стороны.

Синтаксис

Параметры

  • s — UTF-8 закодированная строка, из которой необходимо получить подстроку. Строка или FixedString.
  • offset — Количество байт смещения. (U)Int*.

Возвращаемое значение

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

Пример

Запрос:

Результат:

Запрос:

Результат:

rightPad

Дополняет строку справа пробелами или заданной строкой (многоразово, если необходимо) до достижения указанной length.

Синтаксис

Псевдоним: RPAD

Аргументы

  • string — Входная строка, которую необходимо дополнить. Строка.
  • length — Длина результирующей строки. UInt или Int. Если значение меньше длины входной строки, то входная строка укорочена до length символов.
  • pad_string — Строка, которой будет дополнена входная строка. Строка. Необязательно. Если не указано, то входная строка дополнится пробелами.

Возвращаемое значение

  • Строка, дополненная справа до указанной длины. Строка.

Пример

Результат:

rightPadUTF8

Дополняет строку справа пробелами или заданной строкой (многоразово, если необходимо) до достижения указанной длины. В отличие от rightPad, который измеряет длину строки в байтах, длина строки измеряется в кодовых точках.

Синтаксис

Аргументы

  • string — Входная строка, которую необходимо дополнить. Строка.
  • length — Длина результирующей строки. UInt или Int. Если значение меньше длины входной строки, то входная строка укорочена до length символов.
  • pad_string — Строка, которой будет дополнена входная строка. Строка. Необязательно. Если не указано, то входная строка дополнится пробелами.

Возвращаемое значение

  • Строка, дополненная справа до указанной длины. Строка.

Пример

Результат:

compareSubstrings

Сравнивает две строки лексикографически.

Синтаксис

Аргументы

  • string1 — Первая строка для сравнения. Строка
  • string2 - Вторая строка для сравнения. Строка
  • string1_offset — Позиция (с нуля) в string1, с которой начинается сравнение. UInt*.
  • string2_offset — Позиция (индекс с нуля) в string2, с которой начинается сравнение. UInt*.
  • num_bytes — Максимальное количество байт для сравнения в обеих строках. Если string_offset + num_bytes превышает конец входной строки, num_bytes будет сокращено соответственно. UInt*.

Возвращаемое значение

  • -1 — Если string1[string1_offset : string1_offset + num_bytes] < string2[string2_offset : string2_offset + num_bytes].
  • 0 — Если string1[string1_offset : string1_offset + num_bytes] = string2[string2_offset : string2_offset + num_bytes].
  • 1 — Если string1[string1_offset : string1_offset + num_bytes] > string2[string2_offset : string2_offset + num_bytes].

Пример

Запрос:

Результат:

lower

Преобразует символы ASCII латинского алфавита в строке в нижний регистр.

Синтаксис

Псевдоним: lcase

Параметры

Возвращаемое значение

Пример

Запрос:

upper

Преобразует символы ASCII латинского алфавита в строке в верхний регистр.

Синтаксис

Псевдоним: ucase

Параметры

Возвращаемое значение

Примеры

Запрос:

lowerUTF8

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

примечание

Не определяет язык, например, для турецкого результат может быть не совсем корректным (i/İ против i/I). Если длина байтовой последовательности UTF-8 различна для верхнего и нижнего регистра кодовой точки (таких как и ß), результат может быть некорректным для этой кодовой точки.

Синтаксис

Параметры

Возвращаемое значение

Пример

Запрос:

Результат:

upperUTF8

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

примечание

Не определяет язык, например, для турецкого результат может быть не совсем корректным (i/İ против i/I). Если длина байтовой последовательности UTF-8 различна для верхнего и нижнего регистра кодовой точки (таких как и ß), результат может быть некорректным для этой кодовой точки.

Синтаксис

Параметры

Возвращаемое значение

Пример

Запрос:

Результат:

isValidUTF8

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

Синтаксис

Параметры

Возвращаемое значение

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

Запрос:

Результат:

toValidUTF8

Заменяет некорректные символы UTF-8 символом (U+FFFD). Все подряд идущие некорректные символы объединяются в один заменяющий символ.

Синтаксис

Аргументы

  • input_string — Любой набор байтов, представленный в виде объекта Строка.

Возвращаемое значение

  • Корректная строка UTF-8.

Пример

repeat

Конкатенирует строку столько раз, сколько указано.

Синтаксис

Псевдоним: REPEAT

Аргументы

  • s — Строка для повторения. Строка.
  • n — Количество раз для повторения строки. UInt* или Int*.

Возвращаемое значение

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

Пример

Результат:

space

Конкатенирует пробел ( ) столько раз, сколько указано.

Синтаксис

Псевдоним: SPACE.

Аргументы

  • n — Количество раз для повторения пробела. UInt* или Int*.

Возвращаемое значение

Строка, содержащая пробел , повторенный n раз. Если n <= 0, функция возвращает пустую строку. Строка.

Пример

Запрос:

Результат:

reverse

Инвертирует последовательность байтов в строке.

reverseUTF8

Инвертирует последовательность кодовых точек Unicode в строке. Предполагается, что строка содержит корректно закодированный текст в UTF-8. Если это предположение нарушается, исключение не возникает, а результат остается неопределенным.

concat

Конкатенирует заданные аргументы.

Синтаксис

Аргументы

Значения произвольного типа.

Аргументы, которые не являются типами Строка или FixedString, преобразуются в строки с использованием их стандартной сериализации. Поскольку это снижает производительность, не рекомендуется использовать аргументы, отличные от String/FixedString.

Возвращаемые значения

Строка, созданная путем конкатенации аргументов.

Если какое-либо из аргументов равно NULL, функция возвращает NULL.

Пример

Запрос:

Результат:

Запрос:

Результат:

примечание
|| оператор

Используйте оператор || для конкатенации строк как более лаконичную альтернативу concat(). Например, 'Hello, ' || 'World!' эквивалентно concat('Hello, ', 'World!').

concatAssumeInjective

Как concat, но предполагает, что concat(s1, s2, ...) → sn является инъективной. Может быть использован для оптимизации GROUP BY.

Функция называется инъективной, если она возвращает для различных аргументов различные результаты. Другими словами: различные аргументы никогда не приводят к идентичному результату.

Синтаксис

Аргументы

Значения типа String или FixedString.

Возвращаемые значения

Строка, созданная путем конкатенации аргументов.

Если какое-либо из значений аргументов равно NULL, функция возвращает NULL.

Пример

Входная таблица:

Результат:

concatWithSeparator

Конкатенирует заданные строки с заданным разделителем.

Синтаксис

Псевдоним: concat_ws

Аргументы

  • sep — разделитель. Конст Строка или FixedString.
  • exprN — выражение для конкатенации. Аргументы, которые не являются типами Строка или FixedString, преобразуются в строки с использованием их стандартной сериализации. Поскольку это снижает производительность, не рекомендуется использовать аргументы, отличные от String/FixedString.

Возвращаемые значения

Строка, созданная путем конкатенации аргументов.

Если какое-либо из значений аргументов равно NULL, функция возвращает NULL.

Пример

Результат:

concatWithSeparatorAssumeInjective

Как concatWithSeparator, но предполагает, что concatWithSeparator(sep, expr1, expr2, expr3...) → result является инъективной. Может быть использован для оптимизации GROUP BY.

Функция называется инъективной, если она возвращает для различных аргументов различные результаты. Другими словами: различные аргументы никогда не приводят к идентичному результату.

substring

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

Синтаксис

Псевдонимы:

  • substr
  • mid
  • byteSlice

Аргументы

  • s — Строка, из которой необходимо получить подстроку. Строка, FixedString или Enum
  • offset — Начальная позиция подстроки в s. (U)Int*.
  • length — Максимальная длина подстроки. (U)Int*. Необязательный.

Возвращаемое значение

Подстрока строки s с длиной length, начиная с индекса offset. Строка.

Пример

Результат:

substringUTF8

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

Предполагается, что строка содержит корректно закодированный текст в UTF-8. Если это предположение нарушается, исключение не возникает, а результат остается неопределенным.

Синтаксис

Аргументы

  • s — Строка, из которой необходимо получить подстроку. Строка, FixedString или Enum
  • offset — Начальная позиция подстроки в s. (U)Int*.
  • length — Максимальная длина подстроки. (U)Int*. Необязательный.

Возвращаемое значение

Подстрока строки s с длиной length, начиная с индекса offset.

Детали реализации

Предполагается, что строка содержит корректно закодированный текст в UTF-8. Если это предположение нарушается, исключение не возникает, а результат остается неопределенным.

Пример

substringIndex

Возвращает подстроку s до count вхождений разделителя delim, как в Spark или MySQL.

Синтаксис

Псевдоним: SUBSTRING_INDEX

Аргументы

  • s — Строка, из которой необходимо извлечь подстроку. Строка.
  • delim — Символ для разделения. Строка.
  • count — Количество вхождений разделителя для подсчета до извлечения подстроки. Если count положительное, возвращается все слева от последнего разделителя (подсчет идет слева). Если count отрицательное, возвращается все справа от последнего разделителя (подсчет идет справа). UInt или Int

Пример

Результат:

substringIndexUTF8

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

Предполагается, что строка содержит корректно закодированный текст в UTF-8. Если это предположение нарушается, исключение не возникает, а результат остается неопределенным.

Синтаксис

Аргументы

  • s — Строка, из которой необходимо извлечь подстроку. Строка.
  • delim — Символ для разделения. Строка.
  • count — Количество вхождений разделителя для подсчета до извлечения подстроки. Если count положительное, возвращается все слева от последнего разделителя (подсчет идет слева). Если count отрицательное, возвращается все справа от последнего разделителя (подсчет идет справа). UInt или Int

Возвращаемое значение

Подстрока Строка s до count вхождений delim.

Детали реализации

Предполагается, что строка содержит корректно закодированный текст в UTF-8. Если это предположение нарушается, исключение не возникает, а результат остается неопределенным.

Пример

appendTrailingCharIfAbsent

Добавляет символ c в строку s, если s непустая и не заканчивается на c.

Синтаксис

convertCharset

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

Синтаксис

base32Encode

Кодирует строку с использованием Base32.

Синтаксис

Аргументы

  • plaintextСтрока столбец или константа.

Возвращаемое значение

  • Строка, содержащая закодированное значение аргумента. Строка или FixedString.

Пример

Результат:

base32Decode

Принимает строку и декодирует ее с использованием схемы кодирования Base32.

Синтаксис

Аргументы

  • encodedСтрока или FixedString. Если строка не является корректным Base32 закодированным значением, возникает исключение.

Возвращаемое значение

  • Строка, содержащая декодированное значение аргумента. Строка.

Пример

Результат:

tryBase32Decode

Как base32Decode, но возвращает пустую строку в случае ошибки.

Синтаксис

Параметры

  • encoded: Строка или FixedString. Если строка не является корректным Base32 закодированным значением, возвращает пустую строку в случае ошибки.

Возвращаемое значение

  • Строка, содержащая декодированное значение аргумента.

Примеры

Запрос:

base58Encode

Кодирует строку с использованием Base58 в алфавите "Bitcoin".

Синтаксис

Аргументы

  • plaintextСтрока столбец или константа.

Возвращаемое значение

  • Строка, содержащая закодированное значение аргумента. Строка или FixedString.

Пример

Результат:

base58Decode

Принимает строку и декодирует её с использованием схемы кодирования Base58 с использованием алфавита "Bitcoin".

Синтаксис

Аргументы

  • encodedString или FixedString. Если строка не является допустимым значением, закодированным в Base58, выбрасывается исключение.

Возвращаемое значение

  • Строка, содержащая декодированное значение аргумента. String.

Пример

Результат:

tryBase58Decode

Как base58Decode, но возвращает пустую строку в случае ошибки.

Синтаксис

Параметры

  • encoded: String или FixedString. Если строка не является допустимым значением, закодированным в Base58, возвращает пустую строку в случае ошибки.

Возвращаемое значение

  • Строка, содержащая декодированное значение аргумента.

Примеры

Запрос:

base64Encode

Кодирует String или FixedString в формат base64 в соответствии с RFC 4648.

Псевдоним: TO_BASE64.

Синтаксис

Аргументы

  • plaintext — колонка String или константа.

Возвращаемое значение

  • Строка, содержащая закодированное значение аргумента.

Пример

Результат:

base64URLEncode

Кодирует URL (String или FixedString) в формат base64 с модификациями, специфичными для URL, в соответствии с RFC 4648.

Синтаксис

Аргументы

  • url — колонка String или константа.

Возвращаемое значение

  • Строка, содержащая закодированное значение аргумента.

Пример

Результат:

base64Decode

Принимает строку и декодирует её из base64 в соответствии с RFC 4648. Выбрасывает исключение в случае ошибки.

Псевдоним: FROM_BASE64.

Синтаксис

Аргументы

  • encoded — колонка String или константа. Если строка не является допустимым значением, закодированным в Base64, выбрасывается исключение.

Возвращаемое значение

  • Строка, содержащая декодированное значение аргумента.

Пример

Результат:

base64URLDecode

Принимает строку, закодированную в формате base64, и декодирует её из base64 с модификациями, специфичными для URL, в соответствии с RFC 4648. Выбрасывает исключение в случае ошибки.

Синтаксис

Аргументы

  • encodedURL — колонка String или константа. Если строка не является допустимым значением, закодированным в Base64 с модификациями для URL, выбрасывается исключение.

Возвращаемое значение

  • Строка, содержащая декодированное значение аргумента.

Пример

Результат:

tryBase64Decode

Как base64Decode, но возвращает пустую строку в случае ошибки.

Синтаксис

Аргументы

  • encoded — колонка String или константа. Если строка не является допустимым значением, закодированным в Base64, возвращает пустую строку.

Возвращаемое значение

  • Строка, содержащая декодированное значение аргумента.

Примеры

Запрос:

tryBase64URLDecode

Как base64URLDecode, но возвращает пустую строку в случае ошибки.

Синтаксис

Параметры

  • encodedURL — колонка String или константа. Если строка не является допустимым значением, закодированным в Base64 с модификациями для URL, возвращает пустую строку.

Возвращаемое значение

  • Строка, содержащая декодированное значение аргумента.

Примеры

Запрос:

endsWith

Возвращает, заканчивается ли строка str на suffix.

Синтаксис

endsWithUTF8

Возвращает, заканчивается ли строка str на suffix. Разница между endsWithUTF8 и endsWith в том, что endsWithUTF8 сопоставляет str и suffix по символам UTF-8.

Синтаксис

Пример

Результат:

startsWith

Возвращает, начинается ли строка str на prefix.

Синтаксис

Пример

startsWithUTF8

Available in version 23.8 and later

Возвращает, начинается ли строка str на prefix. Разница между startsWithUTF8 и startsWith в том, что startsWithUTF8 сопоставляет str и suffix по символам UTF-8.

Пример

Результат:

trim

Убирает указанные символы из начала или конца строки. Если не указано иное, функция удаляет пробелы (ASCII-символ 32).

Синтаксис

Аргументы

  • trim_character — Символы для обрезки. String.
  • input_string — Строка для обрезки. String.

Возвращаемое значение

Строка без начальных и/или конечных указанных символов. String.

Пример

Результат:

trimLeft

Удаляет последовательные вхождения пробелов (ASCII-символ 32) из начала строки.

Синтаксис

Псевдоним: ltrim.

Аргументы

  • input_string — Строка для обрезки. String.
  • trim_characters — Символы для обрезки. Необязательно. String. Если не указано, используется ' ' (один пробел) как символ для обрезки.

Возвращаемое значение

Строка без начальных общих пробелов. String.

Пример

Результат:

trimRight

Удаляет последовательные вхождения пробелов (ASCII-символ 32) из конца строки.

Синтаксис

Псевдоним: rtrim.

Аргументы

  • input_string — Строка для обрезки. String.
  • trim_characters — Символы для обрезки. Необязательно. String. Если не указано, используется ' ' (один пробел) как символ для обрезки.

Возвращаемое значение

Строка без конечных общих пробелов. String.

Пример

Результат:

trimBoth

Удаляет последовательные вхождения пробелов (ASCII-символ 32) с обеих сторон строки.

Синтаксис

Псевдоним: trim.

Аргументы

  • input_string — Строка для обрезки. String.
  • trim_characters — Символы для обрезки. Необязательно. String. Если не указано, используется ' ' (один пробел) как символ для обрезки.

Возвращаемое значение

Строка без начальных и конечных общих пробелов. String.

Пример

Результат:

CRC32

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

Тип результата — UInt32.

CRC32IEEE

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

Тип результата — UInt32.

CRC64

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

Тип результата — UInt64.

normalizeUTF8NFC

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

Синтаксис

Аргументы

  • words — Входная строка, закодированная в UTF8. String.

Возвращаемое значение

  • Строка, преобразованная в нормализованную форму NFC. String.

Пример

Результат:

normalizeUTF8NFD

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

Синтаксис

Аргументы

  • words — Входная строка, закодированная в UTF8. String.

Возвращаемое значение

  • Строка, преобразованная в нормализованную форму NFD. String.

Пример

Результат:

normalizeUTF8NFKC

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

Синтаксис

Аргументы

  • words — Входная строка, закодированная в UTF8. String.

Возвращаемое значение

  • Строка, преобразованная в нормализованную форму NFKC. String.

Пример

Результат:

normalizeUTF8NFKD

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

Синтаксис

Аргументы

  • words — Входная строка, закодированная в UTF8. String.

Возвращаемое значение

  • Строка, преобразованная в нормализованную форму NFKD. String.

Пример

Результат:

encodeXMLComponent

Экранирует символы со специальным значением в XML, чтобы их можно было затем поместить в текстовый узел или атрибут XML.

Следующие символы заменяются: <, &, >, ", '. Также смотрите список ссылок на символы XML и HTML.

Синтаксис

Аргументы

  • x — Входная строка. String.

Возвращаемое значение

  • Экранированная строка. String.

Пример

Результат:

decodeXMLComponent

Декодирует подстроки со специальным значением в XML. Эти подстроки: &quot; &amp; &apos; &gt; &lt;

Эта функция также заменяет числовые ссылочные символы на символы Unicode. Поддерживаются как десятичные (например, &#10003;), так и шестнадцатеричные (&#x2713;) формы.

Синтаксис

Аргументы

  • x — Входная строка. String.

Возвращаемое значение

  • Неэкраненная строка. String.

Пример

Результат:

decodeHTMLComponent

Декодирует подстроки со специальным значением в HTML. Например: &hbar; &gt; &diamondsuit; &heartsuit; &lt; и т.д.

Эта функция также заменяет числовые ссылочные символы на символы Unicode. Поддерживаются как десятичные (например, &#10003;), так и шестнадцатеричные (&#x2713;) формы.

Синтаксис

Аргументы

  • x — Входная строка. String.

Возвращаемое значение

  • Неэкраненная строка. String.

Пример

Результат:

extractTextFromHTML

Эта функция извлекает простой текст из HTML или XHTML.

Она не соответствует 100% спецификации HTML, XML или XHTML, но реализация достаточно точна и быстра. Правила следующие:

  1. Комментарии пропускаются. Пример: <!-- test -->. Комментарий должен заканчиваться на -->. Вложенные комментарии не допускаются. Примечание: конструкции, такие как <!--> и <!--->, не являются допустимыми комментариями в HTML, но они пропускаются другими правилами.
  2. CDATA вставляется без изменений. Примечание: CDATA специфично для XML/XHTML и обрабатывается на "наилучших условиях".
  3. Элементы script и style удаляются вместе со всем их содержимым. Примечание: предполагается, что закрывающий тег не может появиться внутри содержимого. Например, в строковом литерале JS он должен быть экранирован как "<\/script>". Примечание: комментарии и CDATA могут быть внутри script или style - тогда закрывающие теги не ищутся внутри CDATA. Пример: <script><![CDATA[</script>]]></script>. Но они всё равно ищутся внутри комментариев. Иногда это становится сложным: <script>var x = "<!--"; </script> var y = "-->"; alert(x + y);</script> Примечание: script и style могут быть именами пространств имен XML - тогда они не рассматриваются как обычные элементы script или style. Пример: <script:a>Hello</script:a>. Примечание: пробелы могут быть после имени закрывающего тега: </script >, но не перед ним: < / script>.
  4. Другие теги или элементы, похожие на теги, пропускаются без внутреннего содержимого. Пример: <a>.</a> Примечание: ожидается, что этот HTML является незаконным: <a test=">"></a> Примечание: также пропускаются конструкции, подобные тегам: <>, <!>, и т.д. Примечание: тег без конца пропускается до конца ввода: <hello
  5. HTML и XML сущности не декодируются. Они должны обрабатываться отдельной функцией.
  6. Пробелы в тексте сжимаются или вставляются по конкретным правилам.
    • Пробелы в начале и в конце удаляются.
    • Последовательные пробелы сжимаются.
    • Но если текст разделен другими элементами и нет пробела, он вставляется.
    • Это может привести к неестественным примерам: Hello<b>world</b>, Hello<!-- -->world - в HTML нет пробела, но функция вставляет его. Также учтите: Hello<p>world</p>, Hello<br>world. Такое поведение разумно для анализа данных, например, для преобразования HTML в мешок слов.
  7. Также обратите внимание, что правильная обработка пробелов требует поддержки свойств <pre></pre> и CSS display и white-space.

Синтаксис

Аргументы

  • x — входной текст. String.

Возвращаемое значение

  • Извлеченный текст. String.

Пример

Первый пример содержит несколько тегов и комментарий и также показывает обработку пробелов. Второй пример показывает обработку CDATA и тега script. В третьем примере текст извлекается из полного HTML-ответа, полученного с помощью функции url.

Результат:

ascii

Возвращает код ASCII (в виде Int32) первого символа строки s.

Если s пустая, результат равен 0. Если первый символ не является символом ASCII или не относится к диапазону Latin-1, результат неопределен.

Синтаксис

soundex

Возвращает код Soundex строки.

Синтаксис

Аргументы

  • val — Входное значение. String

Возвращаемое значение

  • Код Soundex входного значения. String

Пример

Результат:

punycodeEncode

Возвращает представление Punycode строки. Строка должна быть закодирована в UTF8, в противном случае поведение неопределено.

Синтаксис

Аргументы

  • val — Входное значение. String

Возвращаемое значение

  • Представление Punycode входного значения. String

Пример

Результат:

punycodeDecode

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

Синтаксис

Аргументы

  • val — Строка, закодированная в Punycode. String

Возвращаемое значение

  • Открытый текст входного значения. String

Пример

Результат:

tryPunycodeDecode

Как punycodeDecode, но возвращает пустую строку, если не передана допустимая строка, закодированная в Punycode.

idnaEncode

Возвращает ASCII представление (алгоритм ToASCII) доменного имени в соответствии с механизмом Международные доменные имена в приложениях (IDNA). Входная строка должна быть закодирована в UTF и переводима в строку ASCII, в противном случае выбрасывается исключение. Примечание: нельзя выполнять процентное декодирование или обрезку табуляций, пробелов или управляющих символов.

Синтаксис

Аргументы

  • val — Входное значение. String

Возвращаемое значение

  • ASCII представление в соответствии с механизмом IDNA входного значения. String

Пример

Результат:

tryIdnaEncode

Как idnaEncode, но возвращает пустую строку в случае ошибки вместо выбрасывания исключения.

idnaDecode

Возвращает представление Unicode (UTF-8) (алгоритм ToUnicode) доменного имени в соответствии с механизмом Международные доменные имена в приложениях (IDNA). В случае ошибки (например, если ввод неверен) возвращается входная строка. Обратите внимание, что повторное применение idnaEncode() и idnaDecode() не обязательно возвращает оригинальную строку из-за нормализации регистра.

Синтаксис

Аргументы

  • val — Входное значение. String

Возвращаемое значение

  • Представление Unicode (UTF-8) в соответствии с механизмом IDNA входного значения. String

Пример

Результат:

byteHammingDistance

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

Синтаксис

Примеры

Результат:

Псевдоним: mismatches

stringJaccardIndex

Вычисляет Jaccard similarity index между двумя байтовыми строками.

Синтаксис

Примеры

Результат:

stringJaccardIndexUTF8

Как stringJaccardIndex, но для строк, закодированных в UTF8.

editDistance

Вычисляет расстояние редактирования между двумя байтовыми строками.

Синтаксис

Примеры

Результат:

Псевдоним: levenshteinDistance

editDistanceUTF8

Вычисляет расстояние редактирования между двумя строками UTF8.

Синтаксис

Примеры

Результат:

Псевдоним: levenshteinDistanceUTF8

damerauLevenshteinDistance

Вычисляет расстояние Дамерау-Левенштейна между двумя байтовыми строками.

Синтаксис

Примеры

Результат:

jaroSimilarity

Вычисляет схожесть Jaro между двумя байтовыми строками.

Синтаксис

Примеры

Результат:

jaroWinklerSimilarity

Вычисляет схожесть Jaro-Winkler между двумя байтовыми строками.

Синтаксис

Примеры

Результат:

initcap

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

примечание

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

вернет

Это известное поведение, на данный момент нет планов по его исправлению.

Синтаксис

Аргументы

  • val — Входное значение. String.

Возвращаемое значение

  • val с первой буквой каждого слова, преобразованной в верхний регистр. String.

Пример

Запрос:

Результат:

initcapUTF8

Как initcap, initcapUTF8 преобразует первую букву каждого слова в верхний регистр, а остальные — в нижний. Предполагает, что строка содержит действительный текст, закодированный в UTF-8. Если это предположение нарушается, исключение не выбрасывается, и результат неопределен.

примечание

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

Синтаксис

Аргументы

  • val — Входное значение. String.

Возвращаемое значение

  • val с первой буквой каждого слова, преобразованной в верхний регистр. String.

Пример

Запрос:

Результат:

firstLine

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

Синтаксис

Аргументы

  • val — Входное значение. String

Возвращаемое значение

  • Первая строка входного значения или всё значение, если не существует разделителей строк. String

Пример

Результат:

stringCompare

Сравнивает две строки лексикографически.

Синтаксис

Аргументы

  • string1 — Первая строка для сравнения. String
  • string2 - Вторая строка для сравнения. String
  • string1_offset — Позиция (с нуля) в string1, с которой начинается сравнение. Необязательный, положительное число.
  • string2_offset — Позиция (индекс с нуля) в string2, с которой начинается сравнение. Необязательный, положительное число.
  • num_bytes — Максимальное количество байт для сравнения в обеих строках. Если string_offset + num_bytes превышает конец входной строки, num_bytes будет уменьшено соответственно.

Возвращаемое значение

  • -1 — Если string1[string1_offset: string1_offset + num_bytes] < string2[string2_offset:string2_offset + num_bytes] и string1_offset < len(string1) и string2_offset < len(string2). Если string1_offset >= len(string1) и string2_offset < len(string2).
  • 0 — Если string1[string1_offset: string1_offset + num_bytes] = string2[string2_offset:string2_offset + num_bytes] и string1_offset < len(string1) и string2_offset < len(string2). Если string1_offset >= len(string1) и string2_offset >= len(string2).
  • 1 — Если string1[string1_offset: string1_offset + num_bytes] > string2[string2_offset:string2_offset + num_bytes] и string1_offset < len(string1) и string2_offset < len(string2). Если string1_offset < len(string1) и string2_offset >= len(string2).

Пример

Результат:

Результат:

sparseGrams

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

Синтаксис

Аргументы

  • s — Входная строка. String
  • min_ngram_length — Минимальная длина извлекаемой n-граммы. Значение по умолчанию и минимальное — 3.
  • max_ngram_length — Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Не должно быть меньше 'min_ngram_length'.

Возвращаемое значение

  • Массив выбранных подстрок. Array(String).

Пример

Результат:

sparseGramsUTF8

Находит все подстроки данной строки, длина которых составляет не менее n, где хеши (n-1)-грамм на границах подстроки строго больше хешей любых (n-1)-грамм внутри подстроки. Использует crc32 как хеш-функцию. Ожидает строку в кодировке UTF-8, выбрасывает исключение в случае неверной последовательности UTF-8.

Синтаксис

Аргументы

  • s — Входная строка. String
  • min_ngram_length — Минимальная длина извлекаемой n-граммы. Значение по умолчанию и минимальное — 3.
  • max_ngram_length — Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Не должно быть меньше 'min_ngram_length'.

Возвращаемое значение

  • Массив выбранных подстрок. Array(String).

Пример

Результат:

sparseGramsHashes

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

Синтаксис

Аргументы

  • s — Входная строка. String
  • min_ngram_length — Минимальная длина извлекаемой n-граммы. Значение по умолчанию и минимальное — 3.
  • max_ngram_length — Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Не должно быть меньше 'min_ngram_length'.

Возвращаемое значение

  • Массив хешей crc32-c выбранных подстрок. Array(UInt32).

Пример

Результат:

sparseGramsHashesUTF8

Находит хеши всех подстрок данной строки, длина которых составляет не менее n, где хеши (n-1)-грамм на границах подстроки строго больше хешей любых (n-1)-грамм внутри подстроки. Использует crc32 как хеш-функцию. Ожидает строку в кодировке UTF-8, выбрасывает исключение в случае неверной последовательности UTF-8.

Синтаксис

Аргументы

  • s — Входная строка. String
  • min_ngram_length — Минимальная длина извлекаемой n-граммы. Значение по умолчанию и минимальное — 3.
  • max_ngram_length — Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Не должно быть меньше 'min_ngram_length'.

Возвращаемое значение

  • Массив хешей crc32-c выбранных подстрок. Array(UInt32).

Пример

Результат:

stringBytesUniq

Считает количество уникальных байтов в строке.

Синтаксис

Аргументы

  • s — Строка для анализа. String.

Возвращаемое значение

  • Количество уникальных байтов в строке. UInt16.

Пример

Результат:

stringBytesEntropy

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

Синтаксис

Аргументы

  • s — Строка для анализа. String.

Возвращаемое значение

  • Энтропия Шеннона распределения байтов в строке. Float64.

Пример

Результат: