replace - Find and replace one or more substrings - MATLAB (original) (raw)
Main Content
Find and replace one or more substrings
Syntax
Description
newStr = replace([str](#bu5rv7y%5Fsep%5Fbu4l86d-str),[old](#bu5rv7y-old),[new](#bu5rv7y-new))
replaces all occurrences of the substring old
withnew
. If old
contains multiple substrings, then new
either must be the same size as old
, or must be a single substring.
Examples
Replace placeholder text in a list of file names.
Create a string array.
str = ["\MyData\data.tar.gz"; "\MyScripts\cleandata.m"; "\MyScripts\preprocess.m"; "\MyScripts\publishResults.m"]
str = 4×1 string "\MyData\data.tar.gz" "\MyScripts\cleandata.m" "\MyScripts\preprocess.m" "\MyScripts\publishResults.m"
Replace <ROOT_DIR>
with a string that is the name of a file path.
old = ""; new = "C:\MyProject"; newStr = replace(str,old,new)
newStr = 4×1 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 = 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 = 3×1 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 = 3×1 string "Submission Date: 11/29/15\n" "Acceptance Date: 1/20/16\n" "Contact: john.smith@example.com\n"
Input Arguments
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
Thereplace
function fully supports tall arrays. For more information, see Tall Arrays.
Usage notes and limitations:
str
,old
, andnew
must be a string scalar, a character vector, or a cell array containing not more than one character vector.
Version History
Introduced in R2016b