strrep

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

Описание

пример

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замена, и 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

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

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

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

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

Алгоритмы

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

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

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

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