Функции обработки строк

Раздел описывает функции языка выражений, относящиеся к обработке строк.

Функция

Описание

Тип результата

Бэкенд-поддержка

Фронтенд-поддержка

char(Integer code[, String encoding])

Создает односимвольную строку с использованием указанного кода символа code. Используется кодировка encoding или UTF-8, если кодировка не указана.

Пример: char(65) возвращает "A"

String

Да

Нет

charAt(String string, Integer index)

Возвращает целочисленный код символа по указанному индексу index.

Пример: charAt("ABC", 1) возвращает "66"

Integer

Да

Нет

concat(String string1 [, String String2, ...])

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

Пример: concat("ID=", null, 10, table("<<a><I>><<b><S>>", 7, "x")) возвращает "ID=107x"

String

Да

Нет

contains(String string, String substring)

Возвращает true, только если строка содержит определенную подстроку.

Пример: contains("hello world", "world") возвращает "true"

Boolean

Да

Да

endsWith(String string, String suffix)

Возвращает true, если строка заканчивается на специальный суффикс. Результат будет true, если суффикс является пустой строкой или равен аргументу строки.

Пример: endsWith("report.pdf", ".pdf") возвращает "true"

Boolean

Да

Да

format(String pattern, Object parameter1, ...)

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

Совет: эта функция может быть использована для форматирования чисел в строки с использованием определенной системы счисления, т.е. шестнадцатеричной или двоичной. Например, format("%02x", 255) даст ff.

Пример: format("%02x", 255) возвращает "ff"

String

Да

Да

groups(String source, String regex)

Сопоставляет строку-источник с данным регулярным выражением и возвращает найденные значения групп регулярных выражений. См. раздел Группы и сбор данных в приложении Синтаксис Регулярных Выражений, чтобы узнать, как определять и использовать группы.

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

Группа 0 (целое выражение) никогда не возвращается и не считается.

Пример: groups("A-123", "([A-Z])-([0-9]+)") возвращает таблицу с двумя записями: "A", "123"

Object

Да

Да

isBlank(String string)

Возвращает true, если строка равна null, имеет нулевую длину или содержит только пробелы.

Пример: isBlank(" ") возвращает "false"

Boolean

Да

Нет

isDigit(String character)

Возвращает true, если первый символ строки character является цифрой.

Пример: isDigit("9a") возвращает "true"

Boolean

Да

Да

isLetter(String character)

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

Пример: isLetter("Z9") возвращает "true"

Boolean

Да

Да

isLowerCase(String character)

Возвращает true, если первый символ строки character находится в нижнем регистре.

Пример: isLowerCase("aB") возвращает "true"

Boolean

Да

Да

isUpperCase(String character)

Возвращает true, если первый символ строки character находится в верхнем регистре.

Пример: isUpperCase("Ab") возвращает "true"

Boolean

Да

Да

isWhitespace(String character)

Возвращает true, если первый символ строки character является пустой областью.

Пример: isWhitespace(" \t") возвращает "true"

Boolean

Да

Да

index(String string, String substring [, Integer fromIndex])

Возвращает порядковый номер символа в строке, начиная с 0, первого вхождения субстроки в первый аргумент или -1, если таковая не обнаружена.

Пример: index("banana", "na", 3) возвращает "4"

Integer

Да

Да

lastIndex(String string, String substring, Integer fromIndex)

Возвращает порядковый номер символа в строке, начиная с 0, первого вхождения  справа субстроки в первый аргумент или -1, если не обнаружено.  Поиск идет с fromIndex.

Пример: lastIndex("banana", "na", 5) возвращает "4"

Integer

Да

Да

left(String string [, Integer charCount])

Возвращает первый символ или charCount начальных символов строки string.

Пример: left("Hello", 2) возвращает "He"

String

Да

Нет

length(String string)

Возвращает длину строки.

Пример: length("Hello") возвращает "5"

Integer

Да

Да

lower(String string)

Конвертирует все символы в строке в нижний регистр.

Пример: lower("TeSt") возвращает "test"

String

Да

Да

mid(String input, Integer beginIndex, Integer length)

Возвращает новую строку, которая является подстрокой входной строки input. Подстрока начинается с указанного индекса beginIndex (включительно) и имеет заданную длину length. Если beginIndex + length превышает длину входной строки, подстрока продолжается только до конца строки.

Пример: mid("abcdef", 2, 3) возвращает "cde"

String

Да

Нет

replace(String string, String target, String replacement)

Заменяет каждую субстроку строки, которая совпадает с целевой субстрокой target заданной строкой replacement. Замещение происходит от начала строки к концу, например, замещение "aa" на "b" в строке "aaa" даст "ba", а не "ab".

Пример: replace("aaa", "aa", "b") возвращает "ba"

String

Да

Да

replaceSmart(String string, String regex, String replacement)

Заменяет каждую подстроку строки, которая соответствует заданному регулярному выражению regex, на заданную строку replacement или в соответствии с ней.

Строка replacement может содержать ссылки на подпоследовательности, захваченные во время предыдущего совпадения: Каждое вхождение ${name} или $g будет заменено результатом вычисления соответствующей group(name) или group(g) соответственно. Для $g первое число после $ всегда рассматривается как часть ссылки на группу. Последующие числа включаются в g, если они образуют законную групповую ссылку. Только цифры от '0' до '9' рассматриваются как потенциальные компоненты групповой ссылки. Если вторая группа соответствует, например, строке "foo", то передача строки replacement "$2bar" приведет к тому, что к строке будет добавлено "foobar".

Обратите внимание, что обратные косые черты (\) и знаки доллара ($) в строке replacement могут привести к тому, что результаты будут отличаться от того, что было бы, если бы она рассматривалась как буквальная строка replacement. Используйте экранирование символов регулярных выражений, чтобы подавить особое значение этих символов, например, знак доллара ($) можно включить в строку замены как литерал, поставив перед ним обратную косую черту (\$).

Пример: replaceSmart("item=42", "([0-9]+)", "[$1]") возвращает "item=[42]"

String

Да

Нет

right(String string [, Integer charCount])

Возвращает последний символ или charCount конечных символов строки string.

Пример: right("Hello", 2) возвращает "lo"

String

Да

Нет

split(String string, String regex [, String fieldName [, Integer limit]])

Разбивает эту строку на совпадения данного регулярного выражения.

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

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

Результирующая таблица имеет единственное поле Строка под названием fieldName (по умолчанию - element). Значения в этом столбце представляют элементы исходящей строки.

Примеры:

split("boo:and:foo", ":", "field", 2) возвращает таблицу с двумя записями: "boo", "and:foo"

split("boo:and:foo", ":", "field", 5) возвращает таблицу с тремя записями: "boo", "and", "foo"

split("boo:and:foo", ":", "field", -2) возвращает таблицу с тремя записями: "boo", "and", "foo"

split("boo:and:foo", "o", "field", 5) возвращает таблицу с пятью записями: "b", "", ":and:f", "", ""

split("boo:and:foo", "o", "field", -2) возвращает таблицу с пятью записями: "b", "", ":and:f", "", ""

split("boo:and:foo", "o", "field", 0) возвращает таблицу с тремя записями: "b", "", ":and:f"

DataTable

Да

Да

startsWith(String string, String prefix)

Возвращает true, если строка начинается с заданного префикса. Имейте в виду, что вернется true, если префикс является пустой строкой или равен строке.

Пример: startsWith("hello", "he") возвращает "true"

Boolean

Да

Да

substring(String string, Integer beginIndex [ , Integer endIndex])

Возвращает новую строку, которая является субстрокой строки. Субстрока начинается с символа, заданного beginIndex и заканчивается в конце строки символом endIndex – 1 или последним символом исходной строки, если параметр endIndex не указан.

Примеры: 

substring("unhappy", 2) вернет "happy"

substring("Harbison", 3) вернет "bison"

substring("emptiness", 9) вернет "" (пустую строку)

substring("hamburger", 4, 8) вернет "urge"

substring("smiles", 1, 5) вернет "mile"

String

Да

Да

trim(String string [, Boolean inside])

Возвращает копию строки без начального и конечного пробелов.  Если параметр inside равен true, также заменяет все цепочки неотображаемых символов, встречающиеся в строке, на одиночные пробелы.

Пример: trim(" a b ", true) возвращает "a b"

String

Да

Да

upper(String string)

Конвертирует все символы в строке в верхний регистр.

Пример: upper("Hello") возвращает "HELLO"

String

Да

Да

urlDecode(String string, String encoding)

Декодирует строку application/x-www-form-urlencoded, используя специальную схему кодирования. Данное кодирование используется для определения символов, представленных любыми последовательностями формы %xy.

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

Пример: urlDecode("Hello+world%21", "UTF-8") возвращает "Hello world!"

String

Да

Да

urlEncode(String string, String encoding)

Переводит строку в формат application/x-www-form-urlencoded с использованием специальной схемы кодирования. Этот метод использует данное кодирование с целью получения байтов для небезопасных символов.

Примечание: Рекомендации Консорциума World Wide Web утвержадют, что для кодирования нужно использовать UTF-8. Если этого не делать, может произойти несовместимость.

Пример: urlEncode("Hello world!", "UTF-8") возвращает "Hello+world%21"

String

Да

Да

Was this page helpful?