5.3.3 Разделение и объединение строк
- : substr (s, offset) ¶
- : substr (s, offset, len) ¶
-
Возвращает подстроку s, которая начинается с символа с номером offset и имеет длину len символов.
Нумерация позиций для смещений начинается с 1. Если offset отрицательный, извлечение начинается на расстоянии, равном offset, от конца строки.
Если len опущено, подстрока простирается до конца s. Отрицательное значение len извлекает подстроку до символа, находящегося на расстоянии len от конца строки.
Примеры:
substr ("This is a test string", 6, 9) ⇒ "is a test" substr ("This is a test string", -11) ⇒ "test string" substr ("This is a test string", -11, -7) ⇒ "test"Эта функция смоделирована по аналогии с эквивалентной функцией в Perl.
- : [tok, rem] = strtok (str) ¶
- : [tok, rem] = strtok (str, delim) ¶
-
Находит все символы в строке str до, но не включая, первого символа, который есть в строке delim.
str также может быть ячейным массивом строк, в этом случае функция выполняется на каждой отдельной строке и возвращает ячейный массив токенов и остатков.
Ведущие разделители игнорируются. Если delim не указан, предполагаются пробелы.
Если запрашивается rem, то он содержит остаток строки, начиная с первого разделителя.
Примеры:
strtok ("this is the life") ⇒ "this" [tok, rem] = strtok ("14*27+31", "+-*/") ⇒ tok = 14 rem = *27+31
- : [cstr] = strsplit (str) ¶
- : [cstr] = strsplit (str, del) ¶
- : [cstr] = strsplit (…, name, value) ¶
- : [cstr, matches] = strsplit (…) ¶
-
Разбивает строку str с использованием разделителей, указанных в del, и возвращает ячейный массив строк подстрок.
Если разделитель не указан, строка разбивается по пробелам
{" ", "\f", "\n", "\r", "\t", "\v"}. В противном случае разделитель del должен быть строкой или ячейным массивом строк. По умолчанию последовательные разделители в исходной строке s сводятся к одному, что приводит к одному разделению.Поддерживаемые пары аргументов name/value:
- collapsedelimiters, который может принимать значение
true(по умолчанию) илиfalse. - delimitertype, который может принимать значение
"simple"(по умолчанию) или"regularexpression". Простой разделитель соответствует тексту точно, как он написан. В противном случае используется синтаксис регулярных выражений, описанный вregexp.
Необязательный второй выход matches возвращает разделители, которые были сопоставлены в исходной строке.
Примеры с простыми разделителями:
strsplit ("a b c") ⇒ { [1,1] = a [1,2] = b [1,3] = c } strsplit ("a,b,c", ",") ⇒ { [1,1] = a [1,2] = b [1,3] = c } strsplit ("a foo b,bar c", {" ", ",", "foo", "bar"}) ⇒ { [1,1] = a [1,2] = b [1,3] = c } strsplit ("a,,b, c", {",", " "}, "collapsedelimiters", false) ⇒ { [1,1] = a [1,2] = [1,3] = b [1,4] = [1,5] = c }Примеры с разделителями регулярных выражений:
strsplit ("a foo b,bar c", ',|\s|foo|bar', ... "delimitertype", "regularexpression") ⇒ { [1,1] = a [1,2] = b [1,3] = c } strsplit ("a,,b, c", '[, ]', "collapsedelimiters", false, ... "delimitertype", "regularexpression") ⇒ { [1,1] = a [1,2] = [1,3] = b [1,4] = [1,5] = c } strsplit ("a,\t,b, c", {',', '\s'}, "delimitertype", "regularexpression") ⇒ { [1,1] = a [1,2] = b [1,3] = c } strsplit ("a,\t,b, c", {',', ' ', '\t'}, "collapsedelimiters", false) ⇒ { [1,1] = a [1,2] = [1,3] = [1,4] = b [1,5] = [1,6] = c } - collapsedelimiters, который может принимать значение
- : [cstr] = ostrsplit (s, sep) ¶
- : [cstr] = ostrsplit (s, sep, strip_empty) ¶
-
Разбивает строку s с использованием одного или нескольких разделителей sep и возвращает ячейный массив строк.
Последовательные разделители и разделители на границах приводят к пустым строкам, если strip_empty не равно true. Значение по умолчанию для strip_empty равно false.
Двумерные символьные массивы разбиваются на разделители и по исходным границам столбцов.
Пример:
ostrsplit ("a,b,c", ",") ⇒ { [1,1] = a [1,2] = b [1,3] = c } ostrsplit (["a,b" ; "cde"], ",") ⇒ { [1,1] = a [1,2] = b [1,3] = cde }
- : str = strjoin (cstr) ¶
- : str = strjoin (cstr, delimiter) ¶
-
Объединяет элементы ячейного массива строк cstr в одну строку.
Если delimiter не указан, элементы cstr разделяются пробелами.
Если delimiter указан как строка, ячейный массив строк объединяется с использованием этой строки. Поддерживаются управляющие последовательности.
Если delimiter является ячейным массивом строк, длина которого на одну меньше, чем у cstr, то элементы cstr объединяются путем чередования элементов ячейного массива delimiter. Управляющие последовательности не поддерживаются.
strjoin ({'Octave','Scilab','Lush','Yorick'}, '*') ⇒ 'Octave*Scilab*Lush*Yorick'См. также: strsplit.
© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v7.2.0/Splitting-and-Joining-Strings.html