strrep

Найдите и замените подстроку

Синтаксис

newStr = strrep(str,old,new)

Описание

пример

newStr = strrep(str,old,new) заменяет все случаи old в str с new.

Примеры

свернуть все

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

chr = 'The quick brown fox'
chr = 
'The quick brown fox'
newChr = strrep(chr,'quick','sly')
newChr = 
'The sly brown fox'

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

str = ["the quick brown fox";
       "and the lazy dog"]
str = 2x1 string array
    "the quick brown fox"
    "and the lazy dog"

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

newStr = strrep(str,'the','a')
newStr = 2x1 string array
    "a quick brown fox"
    "and a lazy dog"

Замените содержимое заполнителя в массиве ячеек, '___', с различными значениями во втором массиве ячеек.

C1 = {'Date Received: ___';
      'Date Accepted: ___'};
old = '___';
new = {'2016-09-06';
       '2016-10-11'};
C2 = strrep(C1,old,new)
C2 = 2x1 cell array
    {'Date Received: 2016-09-06'}
    {'Date Accepted: 2016-10-11'}

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

repeats = 'abc 2 def 22 ghi 222 jkl 2222'
repeats = 
'abc 2 def 22 ghi 222 jkl 2222'

Найдите индексы повторяющегося шаблона '22' с помощью функции strfind. strfind находит все экземпляры шаблона, включая экземпляры то перекрытие.

indices = strfind(repeats, '22')
indices = 1×6

    11    18    19    26    27    28

Замените '22' с помощью strrep. Когда вы используете strrep, он заменяет каждый экземпляр, идентифицированный strfind.

using_strrep = strrep(repeats, '22', '*')
using_strrep = 
'abc 2 def * ghi ** jkl ***'

Замените '22' с помощью replace. Это не заменяет каждый экземпляр, который заменяет strrep.

using_replace = replace(repeats, '22', '*')
using_replace = 
'abc 2 def * ghi *2 jkl **'

Замените '22' с помощью regexprep. Результаты идентичны результатам с помощью функции replace.

using_regexprep = regexprep(repeats, '22', '*')
using_regexprep = 
'abc 2 def * ghi *2 jkl **'

strrep находит все экземпляры шаблона прежде заменяющий любой экземпляр. Однако replace и функции regexprep заменяют экземпляр шаблона, как только они находят его в рамках текста.

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

свернуть все

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

Типы данных: string | char | cell

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

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

Типы данных: string | char | cell

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

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

Типы данных: string | char | cell

Алгоритмы

  • Функция strrep не находит пустые символьные вектора или пустые строки для замены. Таким образом, когда str и old оба содержат пустой символьный вектор ('') или пустая строка (""), strrep не заменяет пустые символьные вектора или строки с содержимым new.

  • Прежде заменяющий текст, strrep находит все экземпляры old в str, как функция strfind. Для перекрывающихся шаблонов strrep выполняет несколько замен.

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

Представлено до R2006a

Была ли эта тема полезной?