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

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

Функция

Описание

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

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

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

contains(String string, String substring)

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

Булево

Да

Да

endsWith(String string, String suffix)

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

Булево

Да

Да

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

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

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

Строка

Да

Да

groups(String source, String regex)

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

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

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

Объект

Да

Да

isDigit(String character)

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

Булево

Да

Да

isLetter(String character)

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

Булево

Да

Да

isLowerCase(String character)

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

Булево

Да

Да

isUpperCase(String character)

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

Булево

Да

Да

isWhitespace(String character)

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

Булево

Да

Да

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

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

Целое

Да

Да

lastIndex(String string, String substring, Integer fromIndex)

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

Целое

Да

Да

length(String string)

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

Целое

Да

Да

lower(String string)

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

Строка

Да

Да

replace(String string, String target, String replacement)

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

Строка

Да

Да

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. Используйте экранирование символов регулярных выражений, чтобы подавить особое значение этих символов, например, знак доллара ($) можно включить в строку замены как литерал, поставив перед ним обратную косую черту (\$).

Строка

Да

Нет

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"

Таблица данных

Да

Да

startsWith(String string, String prefix)

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

Булево

Да

Да

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"

Строка

Да

Да

trim(String string)

Возвращает копию строки без начального и конечного пробелов.  

Строка

Да

Да

upper(String string)

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

Строка

Да

Да

urlDecode(String string, String encoding)

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

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

Строка

Да

Да

urlEncode(String string, String encoding)

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

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

Строка

Да

Да