exponenta event banner

eraseBetween

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

Описание

пример

newStr = eraseBetween(str,startPat,endPat) удаляет все символы из str которые происходят между подстроками startPat и endPat, но не удаляет startPat и endPat сами. eraseBetween возвращает оставшийся текст как newStr.

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

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

Удаление текста между подстроками "quick" и " fox". eraseBetween функция удаляет текст, но не удаляет "quick" или " fox".

newStr = eraseBetween(str,"quick"," fox")
newStr = 
"The quick fox"

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

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

startPos = ["quick";"the"];
endPos = [" fox";" dog"];
newStr = eraseBetween(str,startPos,endPos)
newStr = 2x1 string
    "The quick fox jumps"
    "over the dog"

С 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 + ">"

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

newStr = eraseBetween(str,startPat,endPat)
newStr = 3x1 string
    "<courseName></courseName>"
    "<semester></semester>"
    "<schedule></schedule>"

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

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

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

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

Удаление подстроки. Чтобы удалить второе имя и один из символов пробела, укажите шестую и одиннадцатую позиции в строке. Удаленная подстрока содержит шестой и 11-й символы.

newStr = eraseBetween(str,6,11)
newStr = 
"Edgar Poe"

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

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

startsPos = [6;7];
endPos = [11;10];
newStr = eraseBetween(str,startsPos,endPos)
newStr = 2x1 string
    "Edgar Poe"
    "Louisa Alcott"

Удаление текста из массивов строк с границами, которые должны быть включены или исключены. eraseBetween удаляет границы, если они включены. eraseBetween возвращает границы как часть массива выходных строк, когда они являются исключительными.

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

str = "small|medium|large"
str = 
"small|medium|large"

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

newStr = eraseBetween(str,6,13,'Boundaries','exclusive')
newStr = 
"small||large"

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

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

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

chr = 'mushrooms, peppers, and onions'
chr = 
'mushrooms, peppers, and onions'
newChr = eraseBetween(chr,10,19)
newChr = 
'mushrooms and onions'

Удаление текста между подстроками.

newChr = eraseBetween(chr,'mushrooms',' and')
newChr = 
'mushrooms and onions'

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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