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". The 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"

Выберите среднее имя. Укажите седьмое и 11-е положения в строке.

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-by- 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-by- 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-by- 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-by- 1 Строковые массивы, затем extractBetween(str,[5;10],[9;21]) извлекает подстроки с пятого по девятое положения в str(1), и с 10-го по 21-е позиции в str(2).

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

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

свернуть все

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

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

Введенный в R2016b