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,match] = split(___) дополнительно возвращает массив, match, который содержит все вхождения разделителей, в которых split разделение функций str. Можно использовать этот синтаксис с любым из входных параметров предыдущих синтаксисов.

Примеры

свернуть все

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

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

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

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

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

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

Переключите столбцы names так что последние имена находятся в первом столбце. Добавляйте запятые после каждого последнего имени.

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

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

names = join(names)
names = 3x1 string
    "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
    ""
    "Users"
    "jdoe"
    "My Documents"
    "Examples"

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

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

Начиная с R2020b

Получите числа из строки, обработав текст как разделитель. Используйте шаблон, чтобы соответствовать тексту. Затем сложите цифры.

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

str = "10 apples 3 bananas and 5 oranges"
str = 
"10 apples 3 bananas and 5 oranges"

Затем создайте шаблон, соответствующий пробельному символу или буквам.

pat = " " | lettersPattern
pat = pattern
  Matching:

    " " | lettersPattern

Разделите строку с помощью pat как разделитель. Пустые строки представляют расщепления между пространствами и последовательностями букв, которые не имели ничего другого между ними. Для примера, в "10 apples"перед разделителем происходит разделение " "а затем между " " и "apples". Поскольку между разделителями ничего нет " " и "apples", а split функция возвращает пустую строку, чтобы указать, что между ними ничего нет.

N = split(str,pat)
N = 11x1 string
    "10"
    ""
    ""
    "3"
    ""
    ""
    ""
    ""
    "5"
    ""
    ""

Отбросьте пустые строки и сохраните подстроки, которые представляют числа.

N = N(strlength(N) > 0)
N = 3x1 string
    "10"
    "3"
    "5"

Наконец, преобразуйте N в числовой массив и сумму по нему.

N = str2double(N);
sum(N)
ans = 18

Список функций, которые создают объекты шаблона, см. pattern.

Создайте строку. Начиная с 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
    "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
    "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
    "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
    "Mary Butler"
    "Santiago Marquez"
    "Diana Lee"

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

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

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

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

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

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

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

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

match = 6x1 string
    ","
    " "
    ","
    " "
    "and"
    " "

Присоединяйтесь к newStr и match назад вместе с join функция.

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

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

свернуть все

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

Разделение подстрок, заданное как одно из следующего:

  • Строковые массивы

  • Вектор символов

  • Массив ячеек из символьных векторов

  • pattern массив (с R2020b года)

Подстроки, указанные в delimiter не появляются в выход newStr.

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

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

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

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

свернуть все

Подстроки разделяются из исходного массива, возвращаются как строковые массивы или массив ячеек из векторов символов. Если массив входа str являются строковые массивы, тогда это так же newStr. В противном случае newStr - массив ячеек из векторов символов.

Идентифицированные разделители, возвращенные как строковые массивы или массив ячеек векторов символов. Если массив входа str являются строковые массивы, тогда это так же match. В противном случае match - массив ячеек из векторов символов.

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

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

Введенный в R2016b