Spec-Zone.ru › Julia 0.5

Строки

length(s)

Количество символов в строке s.

sizeof(s::AbstractString)

Количество байтов в строке s.

*(s, t)

Конкатенация строк. Оператор * — псевдоним для этой функции.

julia> "Hello " * "world"
"Hello world"
^(s, n)

Повторение строки s n раз. Функция repeat является псевдонимом для этого оператора.

julia> "Test "^3
"Test Test Test "
string(xs...)

Создание строки из любых значений с помощью функции print.

repr(x)

Создание строки из любого значения с помощью функции showall.

String(s::AbstractString)

Преобразование строки в непрерывный массив байтов, представленный как байты UTF-8. Это представление часто подходит для передачи строк в C.

transcode(T, src)

Преобразование данных строки между кодировками Юникода. src — это либо String, либо Vector{UIntXX} единиц кода UTF-XX, где XX — 8, 16 или 32. T указывает кодировку возвращаемого значения: String для возвращения (кодированной в UTF-8) String, или UIntXX для возвращения Vector{UIntXX} данных UTF-XX. (Псевдоним Cwchar_t также может использоваться как целочисленный тип для преобразования строк wchar_t*, используемых внешними библиотеками C.)

Функция transcode выполняется успешно, пока входные данные могут быть адекватно представлены в целевой кодировке; она всегда выполняется успешно для преобразований между кодировками UTF-XX, даже для недопустимых данных Юникода.

В настоящее время поддерживается только преобразование в/из UTF-8.

unsafe_string(p::Ptr{UInt8}[, length::Integer])

Копирование строки из адреса строки C-стиля (завершающейся символом NUL), закодированной как UTF-8. (Указатель можно безопасно освободить после этого.) Если указан length (длина данных в байтах), строка не должна быть завершена символом NUL.

Эта функция помечена как «небезопасная», так как она вызовет сбой, если p не является действительным адресом памяти для данных требуемой длины.

См. также unsafe_wrap(), которая принимает указатель и оборачивает вокруг него объект строки без копирования.

unsafe_wrap(String, p::Ptr{UInt8}, [length, ]own=false)

Оборачивание указателя p на массив байтов в объекте String, интерпретируя байты как символы, закодированные в UTF-8, без копирования. Необязательный аргумент length указывает длину данных указателя в байтах; если он опущен, данные предполагаются завершенными символом NUL. Аргумент own необязательно указывает, должна ли Julia взять на себя владение памятью, вызвав free для указателя, когда массив больше не ссылается.

Эта функция помечена как «небезопасная», так как она вызовет сбой, если p не является действительным адресом памяти для данных требуемой длины.

См. также unsafe_string(), которая принимает указатель и создает копию данных.

ascii(s::AbstractString)

Преобразование строки в тип String и проверка, что она содержит только данные ASCII, в противном случае выбрасывание ArgumentError , указывающего позицию первого не-ASCII байта.

@r_str() → Regex

Создание регулярного выражения, например r"^[a-z]*$". Регулярное выражение также принимает один или несколько флагов, указанных после закрывающей кавычки, чтобы изменить его поведение:

  • i включает регистронезависимое сопоставление
  • m обрабатывает токены ^ и $ как соответствующие началу и концу отдельных строк, а не всей строки.
  • s позволяет использовать модификатор . для сопоставления с новой строкой.
  • x включает «режим комментариев»: пробелы разрешены, за исключением случаев, когда они экранированы с помощью \, а # обрабатывается как начало комментария.

Например, это регулярное выражение включает все три флага:

julia> match(r"a+.*b+.*?d$"ism, "Goodbye,\nOh, angry,\nBad world\n")
RegexMatch("angry,\nBad world")
@html_str() → Docs.HTML

Создание объекта HTML из буквальной строки.

@text_str() → Docs.Text

Создание объекта Text из буквальной строки.

normalize_string(s, normalform::Symbol)

Нормализация строки s в соответствии с одной из четырех «нормальных форм» стандарта Юникода: normalform может быть :NFC, :NFD, :NFKC, или :NFKD. Нормальные формы C (каноническое объединение) и D (каноническое разложение) преобразуют разные визуально идентичные представления одной и той же абстрактной строки в единую каноническую форму, причем форма C более компактна. Нормальные формы KC и KD дополнительно канонизируют «совместимые эквиваленты»: они преобразуют символы, которые абстрактно похожи, но визуально отличны, в единый канонический выбор (например, они расширяют лигатуры до отдельных символов), причем форма KC более компактна.

В качестве альтернативы, более точный контроль и дополнительные преобразования могут быть получены путем вызова normalize_string(s; keywords...), где указано любое количество следующих логических ключевых слов (по умолчанию все false, за исключением compose):

  • compose=false: не выполнять каноническое объединение
  • decompose=true: выполнить каноническое разложение вместо канонического объединения (compose=true игнорируется, если присутствует)
  • compat=true: совместимые эквиваленты канонизируются
  • casefold=true: выполнить складывание регистра Юникода, например, для регистронезависимого сравнения строк
  • newline2lf=true, newline2ls=true, или newline2ps=true: преобразовать различные последовательности новой строки (LF, CRLF, CR, NEL) в символ новой строки (LF), символ разрыва строки (LS) или символ разрыва абзаца (PS), соответственно
  • stripmark=true: удалить диакритические знаки (например, акценты)
  • stripignore=true: удалить «символы, игнорируемые по умолчанию» Юникода (например, мягкий дефис или маркер слева направо)
  • stripcc=true: удалить управляющие символы; горизонтальные табуляции и знаки форматирования преобразуются в пробелы; новые строки также преобразуются в пробелы, если не был указан флаг преобразования новой строки
  • rejectna=true: выбросить ошибку, если будут найдены неназначенные кодовые точки
  • stable=true: обеспечить стабильность версий Юникода

Например, NFKC соответствует параметрам compose=true, compat=true, stable=true.

graphemes(s) → iterator over substrings of s

Возвращает итератор по подстрокам s , соответствующим расширенным графемам в строке, как определено в Unicode UAX #29. (Грубо говоря, это то, что пользователи воспринимают как отдельные символы, хотя они могут содержать более одной кодовой точки; например, буква, объединенная с диакритическим знаком, является одной графемой.)

isvalid(value) → Bool

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

isvalid(T, value) → Bool

Возвращает true , если заданное значение допустимо для данного типа. В настоящее время типы могут быть либо Char, либо String. Значения для Char могут быть типа Char или UInt32. Значения для String могут быть того же типа, или Vector{UInt8}.

isvalid(str, i)

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

is_assigned_char(c) → Bool

Возвращает true , если заданный символ или целое число является назначенной кодовой точкой Юникода.

ismatch(r::Regex, s::AbstractString) → Bool

Проверка, содержит ли строка совпадение с данным регулярным выражением.

match(r::Regex, s::AbstractString[, idx::Integer[, addopts]])

Поиск первого совпадения регулярного выражения r в s и возвращение объекта RegexMatch , содержащего совпадение, или ничего, если совпадение не найдено. Совпадающую подстроку можно получить, обратившись к m.match, а захваченные последовательности можно получить, обратившись к m.captures . Необязательный аргумент idx задает индекс, с которого следует начать поиск.

eachmatch(r::Regex, s::AbstractString[, overlap::Bool=false])

Поиск всех совпадений регулярного выражения r в s и возвращение итератора по совпадениям. Если перекрытие true, совпадающие последовательности могут перекрываться индексами в исходной строке, в противном случае они должны быть из разных диапазонов символов.

matchall(r::Regex, s::AbstractString[, overlap::Bool=false]) → Vector{AbstractString}

Возвращает вектор совпадающих подстрок из eachmatch.

lpad(string, n, p)

Делает строку как минимум n столбцами шириной при выводе, добавляя заполнение слева копиями p.

rpad(string, n, p)

Делает строку как минимум n столбцами шириной при выводе, добавляя заполнение справа копиями p.

search(string, chars[, start])

Поиск первого вхождения заданных символов в заданную строку. Второй аргумент может быть одиночным символом, вектором или набором символов, строкой или регулярным выражением (хотя регулярные выражения разрешены только для непрерывных строк, таких как ASCII или UTF-8 строки). Третий аргумент необязательно указывает начальный индекс. Возвращаемое значение — диапазон индексов, где найдена соответствующая последовательность, так что s[search(s,x)] == x:

search(string, "substring") = start:end так что string[start:end] == "substring", или 0:-1 если не найдено совпадение.

search(string, 'c') = index так что string[index] == 'c', или 0 если не найдено совпадение.

rsearch(string, chars[, start])

Аналогично search, но возвращает последнее вхождение заданных символов в заданную строку, выполняя поиск в обратном порядке с start.

searchindex(string, substring[, start])

Аналогично search, но возвращает только начальный индекс, в котором найдена подстрока, или 0 если её нет.

rsearchindex(string, substring[, start])

Аналогично rsearch, но возвращает только начальный индекс, в котором найдена подстрока, или 0 если её нет.

contains(haystack, needle)

Определяет, является ли второй аргумент подстрокой первого.

reverse(s::AbstractString) → AbstractString

Инвертирует строку.

replace(string, pat, r[, n])

Ищет заданный шаблон pat, и заменяет каждое вхождение на r. Если n задано, заменяет не более n вхождений. Как и в случае с поиском, второй аргумент может быть одиночным символом, вектором или набором символов, строкой или регулярным выражением. Если r является функцией, каждое вхождение заменяется на r(s), где s — совпадающая подстрока. Если pat является регулярным выражением, и r является SubstitutionString, тогда ссылки на группы захвата в r заменяются соответствующим совпадающим текстом.

split(string, [chars]; limit=0, keep=true)

Возвращает массив подстрок, разделяя заданную строку на вхождения заданных разделителей, которые могут быть указаны в любом из форматов, разрешенных для второго аргумента search (т.е. одиночный символ, набор символов, строка или регулярное выражение). Если chars опущено, оно по умолчанию устанавливается на множество всех пробельных символов, и keep принимается как false. Два ключевых аргумента являются необязательными: они представляют собой максимальный размер результата и флаг, определяющий, следует ли сохранять пустые поля в результате.

rsplit(string, [chars]; limit=0, keep=true)

Аналогично split, но начиная с конца строки.

strip(string[, chars])

Возвращает string с удалением всех начальных и конечных пробелов. Если chars (символ, или вектор или набор символов) задан, вместо этого удаляются символы, содержащиеся в нём.

lstrip(string[, chars])

Возвращает string с удалением всех начальных пробелов. Если chars (символ, или вектор или набор символов) задан, вместо этого удаляются символы, содержащиеся в нём.

rstrip(string[, chars])

Возвращает string с удалением всех конечных пробелов. Если chars (символ, или вектор или набор символов) задан, вместо этого удаляются символы, содержащиеся в нём.

startswith(string, prefix)

Возвращает true если string начинается с prefix. Если prefix является вектором или набором символов, проверяется, принадлежит ли первый символ string этому набору.

endswith(string, suffix)

Возвращает true если string заканчивается на suffix. Если suffix является вектором или набором символов, проверяется, принадлежит ли последний символ string этому набору.

uppercase(string)

Возвращает string со всеми символами, преобразованными в верхний регистр.

lowercase(string)

Возвращает string со всеми символами, преобразованными в нижний регистр.

ucfirst(string)

Возвращает string с первым символом, преобразованным в верхний регистр.

lcfirst(string)

Возвращает string с первым символом, преобразованным в нижний регистр.

join(strings, delim[, last])

Объединяет массив strings в одну строку, вставляя заданный разделитель между смежными строками. Если last задан, он будет использован вместо delim между двумя последними строками. Например

join(["apples", "bananas", "pineapples"], ", ", " and ") == "apples, bananas and pineapples"

strings может быть любым итерируемым объектом над элементами x, которые преобразуются в строки с помощью print(io::IOBuffer, x).

chop(string)

Удаляет последний символ из строки.

chomp(string)

Удаляет единственную конечную новую строку из строки.

ind2chr(string, i)

Преобразует индекс байта в индекс символа.

chr2ind(string, i)

Преобразует индекс символа в индекс байта.

nextind(str, i)

Получает следующий допустимый индекс строки после i. Возвращает значение, большее endof(str) в конце или после конца строки.

prevind(str, i)

Получает предыдущий допустимый индекс строки перед i. Возвращает значение, меньшее 1 в начале строки.

randstring([rng, ]len=8)

Создаёт случайную строку ASCII длиной len, состоящую из прописных и строчных букв, а также цифр от 0 до 9. Необязательный аргумент rng задаёт генератор случайных чисел, см. Случайные числа.

charwidth(c)

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

strwidth(s)

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

isalnum(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ буквенно-цифровым, или это верно для всех элементов строки. Символ считается буквенно-цифровым, если он принадлежит к универсальной категории Unicode Буква или Цифра, т.е. символ, код категории которого начинается с ‘L’ или ‘N’.

isalpha(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ буквенным, или это верно для всех элементов строки. Символ считается буквенным, если он принадлежит к универсальной категории Unicode Буква, т.е. символ, код категории которого начинается с ‘L’.

isascii(c::Union{Char, AbstractString}) → Bool

Проверяет, принадлежит ли символ набору символов ASCII, или это верно для всех элементов строки.

iscntrl(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ управляющим символом, или это верно для всех элементов строки. Управляющие символы — это непечатаемые символы подмножества Latin-1 Unicode.

isdigit(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ числовой цифрой (0-9), или это верно для всех элементов строки.

isgraph(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ печатаемым и не пробелом, или это верно для всех элементов строки. Любой символ, который заставил бы принтер использовать чернила, должен быть классифицирован с помощью isgraph(c)==true.

islower(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ строчной буквой, или это верно для всех элементов строки. Символ считается строчной буквой, если он принадлежит к категории Unicode Ll, Буква: Строчная.

isnumber(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ числовым, или это верно для всех элементов строки. Символ считается числовым, если он принадлежит к универсальной категории Unicode Число, т.е. символ, код категории которого начинается с ‘N’.

isprint(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ печатаемым, включая пробелы, но не управляющий символ. Для строк проверяет, верно ли это для всех элементов строки.

ispunct(c::Union{Char, AbstractString}) → Bool

Проверяет, принадлежит ли символ универсальной категории Unicode Пунктуация, т.е. символ, код категории которого начинается с ‘P’. Для строк проверяет, верно ли это для всех элементов строки.

isspace(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ любым пробельным символом. Включает ASCII-символы ‘\t’, ‘\n’, ‘\v’, ‘\f’, ‘\r’, и ‘ ‘, Latin-1 символ U+0085, и символы в категории Unicode Zs. Для строк проверяет, верно ли это для всех элементов строки.

isupper(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ заглавной буквой или все символы в строке являются заглавными. Символ считается заглавным, если он принадлежит категории Unicode Lu, Буква: Заглавная, или Lt, Буква: Прописная.

isxdigit(c::Union{Char, AbstractString}) → Bool

Проверяет, является ли символ допустимым шестнадцатеричным символом или все символы в строке являются таковыми.

Symbol(x...) → Symbol

Создаёт Symbol, объединяя строковые представления аргументов.

escape_string(str::AbstractString) → AbstractString

Общая эскапизация традиционных C и Unicode escape-последовательностей.

unescape_string(s::AbstractString) → AbstractString

Общая унэскапизация традиционных C и Unicode escape-последовательностей. Обратная функция escape_string(). Также см. unescape_string().

© 2009–2016 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/release-0.5/stdlib/strings/

Spec-Zone.ru

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