exponenta event banner

extractBetween

Извлечение подстрок между начальной и конечной точками

Описание

пример

newStr = extractBetween(str,startPat,endPat) извлекает подстроку из str которая происходит между подстроками startPat и endPat. Извлеченная подстрока не включает startPat и endPat.

newStr является строковым массивом, если str является строковым массивом. В противном случае newStr является массивом ячеек символьных векторов.

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

пример

newStr = extractBetween(str,startPos,endPos) извлекает подстроку из str которая происходит между позициями startPos и endPos, включая символы на этих позициях. extractBetween возвращает подстроку как newStr.

пример

newStr = extractBetween(___,'Boundaries',bounds) приводит к тому, что начальные и конечные значения, указанные в любом из предыдущих синтаксисов, являются либо инклюзивными, либо эксклюзивными. Они являются инклюзивными, когда bounds является 'inclusive', и эксклюзивно, когда bounds является 'exclusive'. Например, extractBetween(str,startPat,endPat,'Boundaries','inclusive') прибыль startPat, endPat, и весь текст между ними как newStr.

Примеры

свернуть все

Создайте массивы строк и выделите текст между подстроками.

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

str = "The quick brown fox"
str = 
"The quick brown fox"

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

Выберите текст между подстроками "quick " и " fox". extractBetween функция выбирает текст, но не включает "quick " или " fox" в выходных данных.

newStr = extractBetween(str,"quick "," fox")
newStr = 
"brown"

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

str = ["The quick brown fox jumps";"over the lazy dog"]
str = 2x1 string
    "The quick brown fox jumps"
    "over the lazy dog"

newStr = extractBetween(str,["quick ";"the "],[" fox";" dog"])
newStr = 2x1 string
    "brown"
    "lazy"

С R2020b г.

Создание строкового массива текста, заключенного в теги.

str = ["<courseName>Calculus I</courseName>";
       "<semester>Fall 2020</semester>";
       "<schedule>MWF 8:00-8:50</schedule>"]
str = 3x1 string
    "<courseName>Calculus I</courseName>"
    "<semester>Fall 2020</semester>"
    "<schedule>MWF 8:00-8:50</schedule>"

Извлеките текст, заключенный в теги. Сначала создайте образцы, соответствующие любому начальному и конечному тегу, используя wildcardPattern функция.

startPat = "<" + wildcardPattern + ">"
startPat = pattern
  Matching:

    "<" + wildcardPattern + ">"

endPat = "</" + wildcardPattern + ">"
endPat = pattern
  Matching:

    "</" + wildcardPattern + ">"

Затем вызовите extractBetween функция.

newStr = extractBetween(str,startPat,endPat)
newStr = 3x1 string
    "Calculus I"
    "Fall 2020"
    "MWF 8:00-8:50"

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

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

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

str = "Edgar Allen Poe"
str = 
"Edgar Allen Poe"

Выберите второе имя. Укажите седьмую и одиннадцатую позиции в строке.

newStr = extractBetween(str,7,11)
newStr = 
"Allen"

Выберите подстроки из каждого элемента строкового массива. При указании различных начальных и конечных позиций с числовыми массивами их размер должен совпадать с размером массива входной строки.

str = ["Edgar Allen Poe";"Louisa May Alcott"]
str = 2x1 string
    "Edgar Allen Poe"
    "Louisa May Alcott"

newStr = extractBetween(str,[7;8],[11;10])
newStr = 2x1 string
    "Allen"
    "May"

Выбор текста из массивов строк с границами, которые должны быть включены или исключены. extractBetween включает границы с выделенным текстом, если границы включены. extractBetween не включает границы с выбранным текстом, если границы являются исключительными.

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

str1 = "small|medium|large"
str1 = 
"small|medium|large"

Выделите текст между шестым и 13-м позициями, но не включайте символы на этих позициях.

newStr = extractBetween(str1,6,13,'Boundaries','exclusive')
newStr = 
"medium"

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

str2 = "The quick brown fox jumps over the lazy dog"
str2 = 
"The quick brown fox jumps over the lazy dog"
newStr = extractBetween(str2," brown","jumps",'Boundaries','inclusive')
newStr = 
" brown fox jumps"

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

chr = 'mushrooms, peppers, and onions'
chr = 
'mushrooms, peppers, and onions'
newChr = extractBetween(chr,12,18)
newChr = 1x1 cell array
    {'peppers'}

Выделите текст между подстроками.

newChr = extractBetween(chr,'mushrooms, ',', and')
newChr = 1x1 cell array
    {'peppers'}

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

свернуть все

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

Текст или узор, обозначающий начальную позицию извлекаемого текста, указанный как одно из следующих значений:

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

  • Символьный вектор

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

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

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

  • Для указания того же самого начала укажите startPat в виде символьного вектора, строкового скаляра или pattern объект.

  • Для указания различных стартов укажите startPat в виде строкового массива, массива ячеек символьных векторов или pattern массив.

Пример: extractBetween(str,"AB","YZ") извлекает подстроки между AB и YZ в каждом элементе str.

Пример: Если str является 2около-1 строковый массив, затем extractBetween(str,["AB";"FG"],["YZ";"ST"]) извлекает подстроки между AB и YZ в str(1), и между FG и ST в str(2).

Текст или узор, обозначающий конечную позицию извлекаемого текста, указанный как одно из следующих значений:

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

  • Символьный вектор

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

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

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

  • Чтобы указать тот же конец, укажите endPat в виде символьного вектора, строкового скаляра или pattern объект.

  • Чтобы указать разные концы, укажите endPat в виде строкового массива, массива ячеек символьных векторов или pattern массив.

Пример: extractBetween(str,"AB","YZ") извлекает подстроки между AB и YZ в каждом элементе str.

Пример: Если str является 2около-1 строковый массив, затем extractBetween(str,["AB";"FG"],["YZ";"ST"]) извлекает подстроки между AB и YZ в str(1), и между FG и ST в str(2).

Начальная позиция, заданная как числовой массив.

Если str является массивом с несколькими фрагментами текста, то startPos может быть числовым скалярным или числовым массивом того же размера, что и str.

Пример: extractBetween(str,5,9) извлекает подстроки с пятой по девятую позиции в каждом элементе str.

Пример: Если str является 2около-1 строковый массив, затем extractBetween(str,[5;10],[9;21]) извлекает подстроку с пятой по девятую позиции в str(1)и с 10-й по 21-ю позиции в str(2).

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Конечная позиция, заданная как числовой массив.

Если str является массивом с несколькими фрагментами текста, то endPos может быть числовым скалярным или числовым массивом того же размера, что и str.

Пример: extractBetween(str,5,9) извлекают подстроки с пятой по девятую позиции в каждом элементе str.

Пример: Если str является 2около-1 строковый массив, затем extractBetween(str,[5;10],[9;21]) извлекает подстроки с пятой по девятую позиции в str(1)и с 10-й по 21-ю позиции в str(2).

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

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

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

Представлен в R2016b