разделение

Разделите строки в разделителях

Синтаксис

newStr = split(str)
newStr = split(str,delimiter)
newStr = split(str,delimiter,dim)
[newStr,matches] = split(___)

Описание

пример

newStr = split(str) делит str в пробельных символах и возвращает результат как выходной массив newStr. Входной массив str может быть массивом строк, вектором символов или массивом ячеек из символьных векторов. Если str является массивом строк, то так newStr. В противном случае newStr является массивом ячеек из символьных векторов. newStr не включает пробельные символы от str.

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

  • Если str является скаляром строки или вектором символов, то newStr является N-by-1 массив строк или массив ячеек из символьных векторов, где N является количеством подстрок.

  • Если str является M-by-1 массив строк или массив ячеек, то newStr является M-by-N массив.

  • Если str является 1-by-M массив строк или массив ячеек, то newStr является 1-by-M-by-N массив.

Для массива строк или массива ячеек любого размера, split ориентирует подстроки N вдоль первого последующего измерения с размером 1.

Если количество подстрок не является тем же самым для каждого элемента str, то вызовите split в for - цикл, чтобы разделить элементы str по одному.

пример

newStr = split(str,delimiter) делит каждый элемент str в разделителях, заданных delimiter. Вывод newStr не включает разделители.

пример

newStr = split(str,delimiter,dim) делит каждый элемент str в вектор, ориентированный по измерению, заданному dim.

пример

[newStr,matches] = split(___) дополнительно возвращает массив, matches, который содержит все случаи разделителей, в которых функция split разделяет str. Можно использовать этот синтаксис с любым из входных параметров предыдущих синтаксисов.

Примеры

свернуть все

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

Создайте массив строк 3 на 1, содержащий имена. Начиная в R2017a, можно создать строки с помощью двойных кавычек.

names = ["Mary Butler";
         "Santiago Marquez";
         "Diana Lee"]
names = 3x1 string array
    "Mary Butler"
    "Santiago Marquez"
    "Diana Lee"

Разделите names в пробельных символах, делая его 3 2 массивом строк.

names = split(names)
names = 3x2 string array
    "Mary"        "Butler" 
    "Santiago"    "Marquez"
    "Diana"       "Lee"    

Переключите столбцы names так, чтобы фамилии были в первом столбце. Добавьте запятую после каждой фамилии.

names = [names(:,2) names(:,1)];
names(:,1) = names(:,1) + ','
names = 3x2 string array
    "Butler,"     "Mary"    
    "Marquez,"    "Santiago"
    "Lee,"        "Diana"   

Соедините фамилии и имена. Функция join помещает пробел между строками, которые она соединяет. После соединения names является массивом строк 3 на 1.

names = join(names)
names = 3x1 string array
    "Butler, Mary"
    "Marquez, Santiago"
    "Lee, Diana"

Создайте строку, которая содержит путь к папке. Начиная в R2017a, можно создать строки с помощью двойных кавычек.

myPath = "/Users/jdoe/My Documents/Examples"
myPath = 
"/Users/jdoe/My Documents/Examples"

Разделите путь в символе /. split возвращает myFolders как массив строк 5 на 1. Первой строкой является "", потому что myPath запускается с символа /.

myFolders = split(myPath,"/")
myFolders = 5x1 string array
    ""
    "Users"
    "jdoe"
    "My Documents"
    "Examples"

Соедините myFolders в новый путь с \ как разделитель. Добавьте C: как начало пути.

myNewPath = join(myFolders,"\");
myNewPath = 'C:' + myNewPath
myNewPath = 
"C:\Users\jdoe\My Documents\Examples"

Создайте строку. Начиная в R2017a, можно создать строки с помощью двойных кавычек.

str = "A horse! A horse! My kingdom for a horse!"
str = 
"A horse! A horse! My kingdom for a horse!"

Разделите str в восклицательных знаках и в пробельных символах. newStr является массивом строк 10 на 1. Последняя строка является пустой строкой, "", потому что последний знак в str является разделителем.

newStr = split(str,[" ","!"])
newStr = 12x1 string array
    "A"
    "horse"
    ""
    "A"
    "horse"
    ""
    "My"
    "kingdom"
    "for"
    "a"
    "horse"
    ""

Создайте массив строк, в котором каждый элемент содержит разграниченные запятой данные о пациенте. Начиная в R2017a, можно создать строки с помощью двойных кавычек.

patients = ["LastName,Age,Gender,Height,Weight";
            "Adams,47,F,64,123";
            "Jones,,,68,175";
            "King,,M,66,180";
            "Smith,38,F,63,118"]
patients = 5x1 string array
    "LastName,Age,Gender,Height,Weight"
    "Adams,47,F,64,123"
    "Jones,,,68,175"
    "King,,M,66,180"
    "Smith,38,F,63,118"

Разделите массив строк. Пара запятых ни с чем между ними указывает на недостающие данные. Когда split делится на повторных разделителях, он возвращает пустые строки как соответствующие элементы выходного массива.

patients = split(patients,",")
patients = 5x5 string array
    "LastName"    "Age"    "Gender"    "Height"    "Weight"
    "Adams"       "47"     "F"         "64"        "123"   
    "Jones"       ""       ""          "68"        "175"   
    "King"        ""       "M"         "66"        "180"   
    "Smith"       "38"     "F"         "63"        "118"   

Создайте массив строк 3 на 1, содержащий имена. Начиная в R2017a, можно создать строки с помощью двойных кавычек.

names = ["Mary Butler";
         "Santiago Marquez";
         "Diana Lee"]
names = 3x1 string array
    "Mary Butler"
    "Santiago Marquez"
    "Diana Lee"

Разделите массив в пробельных символах. По умолчанию split ориентирует выходные подстроки вдоль первого последующего измерения с размером 1. Поскольку names является массивом строк 3 на 1, split ориентирует подстроки вдоль второго измерения splitNames, то есть, столбцов.

splitNames = split(names)
splitNames = 3x2 string array
    "Mary"        "Butler" 
    "Santiago"    "Marquez"
    "Diana"       "Lee"    

Чтобы ориентировать подстроки вдоль строк или первую размерность, задают размерность после того, как вы зададите разделитель. splitNames является теперь 2 3 массивом строк с именами в первой строке и фамилиями во второй строке.

splitNames = split(names," ",1)
splitNames = 2x3 string array
    "Mary"      "Santiago"    "Diana"
    "Butler"    "Marquez"     "Lee"  

Создайте строку. Начиная в R2017a, можно создать строки с помощью двойных кавычек.

str = "bacon, lettuce, and tomato"
str = 
"bacon, lettuce, and tomato"

Разделите str на разделителях. Возвратите результаты разделения в массиве строк и разделителей во втором массиве строк. Когда нет никакого текста между последовательными разделителями, split возвращает пустую строку.

[newStr,matches] = split(str,["and",","," "])
newStr = 7x1 string array
    "bacon"
    ""
    "lettuce"
    ""
    ""
    ""
    "tomato"

matches = 6x1 string array
    ","
    " "
    ","
    " "
    "and"
    " "

Соедините newStr и matches назад вместе с функцией join.

originalStr = join(newStr,matches)
originalStr = 
"bacon, lettuce, and tomato"

Входные параметры

свернуть все

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

Типы данных: string | char | cell

Разграничивая подстроки, заданные как массив строк, вектор символов или массив ячеек из символьных векторов. Подстроки, заданные в delimiter, не появляются в выводе newStr.

Задайте несколько разделителей в массиве строк или массиве ячеек из символьных векторов. Функция split разделяет str на элементах delimiter. Порядок, в котором разделители появляются в delimiter, не имеет значения, если несколько разделителей не начинают матч в том же символе в str. В этом случае, split функционируют разделения на первом разделителе соответствия в delimiter.

Пример: split(str,{' ',',','--'}) разделяет str на пробелах, запятых и парах последовательных тире.

Типы данных: string | char | cell

Размерность, по которой можно разделить строки, заданные как положительное целое число. Если dim не задан, то значением по умолчанию является последнее измерение массива с размером, который не равняется 1.

Выходные аргументы

свернуть все

Разделение подстрок из исходного массива, возвращенного как массив строк или массив ячеек из символьных векторов. Если входной массив, str является массивом строк, то так newStr. В противном случае newStr является массивом ячеек из символьных векторов.

Типы данных: string

Идентифицированные разделители, возвращенные как массив строк или массив ячеек из символьных векторов. Если входной массив, str является массивом строк, то так matches. В противном случае matches является массивом ячеек из символьных векторов.

matches всегда содержит тот меньше элемента, чем вывод newStr содержит.

Типы данных: string

Расширенные возможности

Введенный в R2017b