Spec-Zone.ru › CMake 3.9

string

  • Поиск и замена
    • НАЙТИ
    • ЗАМЕНИТЬ
  • Регулярные выражения
    • СОПОСТАВИТЬ_РЕГ_ВЫРАЖ
    • СОПОСТАВИТЬ_ВСЕ_РЕГ_ВЫРАЖ
    • ЗАМЕНИТЬ_РЕГ_ВЫРАЖ
    • Спецификация регулярных выражений
  • Обработка
    • ДОБАВИТЬ
    • ОБЪЕДИНИТЬ
    • НИЖНИЙ_РЕГИСТР
    • ВЕРХНИЙ_РЕГИСТР
    • ДЛИНА
    • ПОДСТРОКА
    • УДАЛИТЬ_ПРОБЕЛЫ
    • УДАЛИТЬ_ПРОБЕЛЫ_ГЕНЕРАТОР
  • Сравнение
  • Хеширование
  • Генерация
    • ASCII
    • КОНФИГУРИРОВАТЬ
    • СЛУЧАЙНЫЙ
    • ВРЕМЯ
    • UUID

Операции со строками.

Поиск и замена

НАЙТИ

string(FIND <string> <substring> <output variable> [REVERSE])

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

ЗАМЕНИТЬ

string(REPLACE <match_string>
       <replace_string> <output variable>
       <input> [<input>...])

Заменяет все вхождения match_string во входных данных на replace_string и сохраняет результат в выходных данных.

Регулярные выражения

СОПОСТАВИТЬ_РЕГ_ВЫРАЖ

string(REGEX MATCH <regular_expression>
       <output variable> <input> [<input>...])

Сопоставляет регулярное выражение один раз и сохраняет совпадение в переменной вывода. Все <input> аргументы конкатенируются перед сопоставлением.

СОПОСТАВИТЬ_ВСЕ_РЕГ_ВЫРАЖ

string(REGEX MATCHALL <regular_expression>
       <output variable> <input> [<input>...])

Сопоставляет регулярное выражение как можно большее количество раз и сохраняет совпадения в переменную вывода в виде списка. Все <input> аргументы конкатенируются перед сопоставлением.

ЗАМЕНИТЬ_РЕГ_ВЫРАЖ

string(REGEX REPLACE <regular_expression>
       <replace_expression> <output variable>
       <input> [<input>...])

Сопоставляет регулярное выражение как можно большее количество раз и подставляет выражение замены для совпадения в выводе. Все <input> аргументы конкатенируются перед сопоставлением.

Выражение замены может ссылаться на ограниченные скобками подвыражения совпадения, используя \1, \2, …, \9. Обратите внимание, что в коде CMake для получения обратной косой черты через обработку аргументов требуется две обратные косые черты (\\1).

Спецификация регулярных выражений

Следующие символы имеют специальное значение в регулярных выражениях:

^
Сопоставляет начало входных данных
$
Сопоставляет конец входных данных
.
Сопоставляет любой одиночный символ
[ ]
Сопоставляет любой символ(ы) внутри скобок
[^ ]
Сопоставляет любой символ(ы), не находящийся внутри скобок
-
Внутри скобок, задает интервал включения между символами по обе стороны, например [a-f] представляет [abcdef]. Для соответствия литеральной - в скобках, сделайте ее первым или последним символом, например [+*/-] соответствует основным математическим операторам.
*
Сопоставляет предшествующий шаблон ноль или более раз
+
Сопоставляет предшествующий шаблон один или более раз
?
Сопоставляет предшествующий шаблон ноль или один раз
|
Сопоставляет шаблон по обе стороны от |
()
Сохраняет соответствующее подвыражение, которое можно использовать в операции REGEX REPLACE. Кроме того, он сохраняется всеми командами, связанными с регулярными выражениями, включая, например, if(MATCHES), в переменных CMAKE_MATCH_<n> для <n> 0..9.

*, + и ? имеют более высокий приоритет, чем конкатенация. | имеет более низкий приоритет, чем конкатенация. Это означает, что регулярное выражение ^ab+d$ соответствует abbd, но не ababd, и регулярное выражение ^(ab|cd)$ соответствует ab, но не abd.

Обработка

ДОБАВИТЬ

string(APPEND <string variable> [<input>...])

Добавляет все входные аргументы к строке.

ОБЪЕДИНИТЬ

string(CONCAT <output variable> [<input>...])

Объединяет все входные аргументы вместе и сохраняет результат в указанной переменной вывода.

НИЖНИЙ_РЕГИСТР

string(TOLOWER <string1> <output variable>)

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

ВЕРХНИЙ_РЕГИСТР

string(TOUPPER <string1> <output variable>)

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

ДЛИНА

string(LENGTH <string> <output variable>)

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

ПОДСТРОКА

string(SUBSTRING <string> <begin> <length> <output variable>)

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

Примечание

CMake 3.1 и ниже сообщали об ошибке, если длина указывала на позицию за пределами строки.

УДАЛИТЬ_ПРОБЕЛЫ

string(STRIP <string> <output variable>)

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

УДАЛИТЬ_ПРОБЕЛЫ_ГЕНЕРАТОР

string(GENEX_STRIP <input string> <output variable>)

Удаляет любые generator expressions из input string и сохраняет результат в output variable.

Сравнение

string(COMPARE LESS <string1> <string2> <output variable>)
string(COMPARE GREATER <string1> <string2> <output variable>)
string(COMPARE EQUAL <string1> <string2> <output variable>)
string(COMPARE NOTEQUAL <string1> <string2> <output variable>)
string(COMPARE LESS_EQUAL <string1> <string2> <output variable>)
string(COMPARE GREATER_EQUAL <string1> <string2> <output variable>)

Сравнивает строки и сохраняет значение true или false в переменную вывода.

Хеширование

string(<HASH> <output variable> <input>)

Вычисляет криптографический хеш входной строки. Поддерживаемые <HASH> имена алгоритмов:

MD5
Алгоритм дайджеста сообщений 5, RFC 1321.
SHA1
Алгоритм безопасного хеширования США 1, RFC 3174.
SHA224
Алгоритмы безопасного хеширования США, RFC 4634.
SHA256
Алгоритмы безопасного хеширования США, RFC 4634.
SHA384
Алгоритмы безопасного хеширования США, RFC 4634.
SHA512
Алгоритмы безопасного хеширования США, RFC 4634.
SHA3_224
Keccak SHA-3.
SHA3_256
Keccak SHA-3.
SHA3_384
Keccak SHA-3.
SHA3_512
Keccak SHA-3.

Генерация

ASCII

string(ASCII <number> [<number> ...] <output variable>)

Преобразует все числа в соответствующие символы ASCII.

КОНФИГУРИРОВАТЬ

string(CONFIGURE <string1> <output variable>
       [@ONLY] [ESCAPE_QUOTES])

Преобразует строку, как configure_file() преобразует файл.

СЛУЧАЙНЫЙ

string(RANDOM [LENGTH <length>] [ALPHABET <alphabet>]
       [RANDOM_SEED <seed>] <output variable>)

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

ВРЕМЯ

string(TIMESTAMP <output variable> [<format string>] [UTC])

Записывает строковое представление текущей даты и/или времени в переменную вывода.

Если команда не может получить отметку времени, переменная вывода будет установлена в пустую строку “”.

Необязательный флаг UTC запрашивает представление текущей даты/времени в координированном всемирном времени (UTC), а не в местном времени.

Необязательный <format string> может содержать следующие спецификаторы формата:

%%        A literal percent sign (%).
%d        The day of the current month (01-31).
%H        The hour on a 24-hour clock (00-23).
%I        The hour on a 12-hour clock (01-12).
%j        The day of the current year (001-366).
%m        The month of the current year (01-12).
%b        Abbreviated month name (e.g. Oct).
%M        The minute of the current hour (00-59).
%s        Seconds since midnight (UTC) 1-Jan-1970 (UNIX time).
%S        The second of the current minute.
          60 represents a leap second. (00-60)
%U        The week number of the current year (00-53).
%w        The day of the current week. 0 is Sunday. (0-6)
%a        Abbreviated weekday name (e.g. Fri).
%y        The last two digits of the current year (00-99)
%Y        The current year.

Неизвестные спецификаторы формата будут проигнорированы и скопированы в вывод как есть.

Если явный <format string> не задан, он по умолчанию будет:

%Y-%m-%dT%H:%M:%S    for local time.
%Y-%m-%dT%H:%M:%SZ   for UTC.
string(MAKE_C_IDENTIFIER <input string> <output variable>)

Записывает строку, которая может использоваться в качестве идентификатора в C.

Примечание

Если переменная среды SOURCE_DATE_EPOCH установлена, ее значение будет использоваться вместо текущего времени. См. https://reproducible-builds.org/specs/source-date-epoch/ для получения подробностей.

UUID

string(UUID <output variable> NAMESPACE <namespace> NAME <name>
       TYPE <MD5|SHA1> [UPPER])

Создает универсальный уникальный идентификатор (также известный как GUID) в соответствии со спецификацией RFC4122, основанный на хеше объединенных значений <namespace> (который сам по себе должен быть допустимым UUID) и <name>. Алгоритм хеширования может быть MD5 (UUID версии 3) или SHA1 (UUID версии 5). UUID имеет формат xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, где каждый x представляет собой строчную шестнадцатеричную цифру. В случае необходимости заглавный регистр можно запросить с помощью необязательного флага UPPER.

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.9/command/string.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API