replaceBetween

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

Описание

пример

newStr = replaceBetween(str,startPat,endPat,newText) заменяет подстроки в str с текстом в newText. Заменяемые подстроки происходят между подстроками startPat и endPat. Однако replaceBetween не заменяет startPat и endPat сами. replaceBetween возвращает результат следующим newStr. The newText аргумент может иметь другое количество символов, чем заменяемая подстрока.

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

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

Замените текст, который находится между подстроками quick и fox. The replaceBetween функция заменяет текст, но не заменяет quick или fox в выходе.

newStr = replaceBetween(str,"quick "," fox","red")
newStr = 
"The quick red fox"

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

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

newText = ["red";"sleeping"];
newStr = replaceBetween(str,["quick ";"the "],[" fox";" dog"],newText)
newStr = 2x1 string
    "The quick red fox jumps"
    "over the sleeping dog"

Начиная с R2020b

Создайте такие сокращения, как "i18n" для "internationalization". Для этого замените текст между первой и последней буквами слова на количество букв.

Сначала создайте строковые массивы.

str = ["globalization";
       "internationalization";
       "localization"]
str = 3x1 string
    "globalization"
    "internationalization"
    "localization"

Создайте шаблоны, которые совпадают с первыми и последними символами строки. The textBoundary функция совпадает с контурами в начале или конце строки, в то время как вызов lettersPattern(1) соответствует любой букве.

startPat = textBoundary + lettersPattern(1)
startPat = pattern
  Matching:

    textBoundary + lettersPattern(1)

endPat = lettersPattern(1) + textBoundary
endPat = pattern
  Matching:

    lettersPattern(1) + textBoundary

Найдите длину каждой строки в str. Для расчета первых и последних букв вычитайте две из каждой длины. Преобразуйте длины в строки.

L = strlength(str) - 2;
L = string(L)
L = 3x1 string
    "11"
    "18"
    "10"

Создайте сокращения для элементов str. Замените символы между первой и последней буквами элементами L.

newStr = replaceBetween(str,startPat,endPat,L)
newStr = 3x1 string
    "g11n"
    "i18n"
    "l10n"

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

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

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

str = "Edgar Allen Poe"
str = 
"Edgar Allen Poe"
newStr = replaceBetween(str,7,11,'A.')
newStr = 
"Edgar A. Poe"

Замените подстроки из каждого элемента массива строковых массивов. Когда вы задаете различные положения начала и конца с числовыми массивами, они должны быть того же размера, что и входа строковых массивов. Текст замены также должен быть в строковых массивах или массиве ячеек того же размера.

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

newText = ["A.";"M."];
newStr = replaceBetween(str,[7;8],[11;10],newText)
newStr = 2x1 string
    "Edgar A. Poe"
    "Louisa M. Alcott"

Замените текст из строковых массивов в контурах, которые вынуждены быть инклюзивными или эксклюзивными. replaceBetween заменяет контуры вместе с текстом, когда контуры включены. replaceBetween не заменяет контуров, когда контуры являются эксклюзивными.

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

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

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

newText = "regular";
newStr = replaceBetween(str,6,13,newText,'Boundaries','exclusive')
newStr = 
"small|regular|large"

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

str = "The quick brown fox jumps over the lazy dog"
str = 
"The quick brown fox jumps over the lazy dog"
newText = "red bird flies";
newStr = replaceBetween(str,'brown','jumps',newText,'Boundaries','inclusive')
newStr = 
"The quick red bird flies over the lazy dog"

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

chr = 'mushrooms, peppers, and onions'
chr = 
'mushrooms, peppers, and onions'
newChr = replaceBetween(chr,12,18,'pineapple')
newChr = 
'mushrooms, pineapple, and onions'

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

newChr = replaceBetween(chr,'mushrooms,',' and',' extra cheese,')
newChr = 
'mushrooms, extra cheese, and onions'

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

свернуть все

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

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

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

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

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

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

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

  • Чтобы задать тот же старт, задайте startPat как вектор символов, строковый скаляр или pattern объект.

  • Чтобы задать различные старты, задайте startPat как строковые массивы, массив ячеек из векторов символов или pattern массив.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если str являются строковые массивы или массив ячеек векторов символов, затем newText может быть векторы символов, строковый скаляр, или строковые массивы или массив ячеек того же размера, что и str.

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

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

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

свернуть все

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

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

.
Введенный в R2016b