Main Content

replace

Find and replace one or more substrings

Description

newStr = replace(str,old,new) replaces all occurrences of the substring old with new. If old contains multiple substrings, then new either must be the same size as old, or must be a single substring.

example

Examples

collapse all

Replace placeholder text in a list of file names.

Create a string array.

str = ["<ROOT_DIR>\MyData\data.tar.gz";
       "<ROOT_DIR>\MyScripts\cleandata.m";
       "<ROOT_DIR>\MyScripts\preprocess.m";
       "<ROOT_DIR>\MyScripts\publishResults.m"]
str = 4x1 string
    "<ROOT_DIR>\MyData\data.tar.gz"
    "<ROOT_DIR>\MyScripts\cleandata.m"
    "<ROOT_DIR>\MyScripts\preprocess.m"
    "<ROOT_DIR>\MyScripts\publishResults.m"

Replace <ROOT_DIR> with a string that is the name of a file path.

old = "<ROOT_DIR>";
new = "C:\MyProject";
newStr = replace(str,old,new)
newStr = 4x1 string
    "C:\MyProject\MyData\data.tar.gz"
    "C:\MyProject\MyScripts\cleandata.m"
    "C:\MyProject\MyScripts\preprocess.m"
    "C:\MyProject\MyScripts\publishResults.m"

Since R2020b

Create a string that includes a phone number.

str = "Hide the numbers in: (508) 555-1234"
str = 
"Hide the numbers in: (508) 555-1234"

Create a pattern that matches a digit using the digitsPattern function.

pat = digitsPattern(1)
pat = pattern
  Matching:

    digitsPattern(1)

Replace all digits with a "#" character.

newStr = replace(str,pat,"#")
newStr = 
"Hide the numbers in: (###) ###-####"

Create another pattern that matches only phone numbers.

pat = "(" + digitsPattern(3) + ") " + digitsPattern(3)  + "-" + digitsPattern(4)
pat = pattern
  Matching:

    "(" + digitsPattern(3) + ") " + digitsPattern(3) + "-" + digitsPattern(4)

Replace a phone number in a string that also has another number.

str = "12 calls made to: (508) 555-1234";
newStr = replace(str,pat,"(###) ###-####")
newStr = 
"12 calls made to: (###) ###-####"

For a list of functions that create pattern objects, see pattern.

Replace carriage returns with newline characters.

Create a string array.

str = ["Submission Date: 11/29/15\r";
       "Acceptance Date: 1/20/16\r";
       "Contact: john.smith@example.com\r\n"]
str = 3x1 string
    "Submission Date: 11/29/15\r"
    "Acceptance Date: 1/20/16\r"
    "Contact: john.smith@example.com\r\n"

Replace the carriage returns.

old = {'\r\n','\r'};
new = '\n';
newStr = replace(str,old,new)
newStr = 3x1 string
    "Submission Date: 11/29/15\n"
    "Acceptance Date: 1/20/16\n"
    "Contact: john.smith@example.com\n"

Input Arguments

collapse all

Input text, specified as a string array, character vector, or cell array of character vectors.

Substring to replace, specified as one of the following:

  • String array

  • Character vector

  • Cell array of character vectors

  • pattern array (since R2020b)

New substring, specified as a string array, character vector, or cell array of character vectors.

Tips

  • To perform multiple replacements for overlapping patterns, use the strrep function.

Extended Capabilities

Version History

Introduced in R2016b