split

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

Описание

пример

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

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

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

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

  • Если str 1- M массив строк или массив ячеек, затем newStr 1- M- 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