insertBefore - Insert strings before specified substrings - MATLAB (original) (raw)
Insert strings before specified substrings
Syntax
Description
[newStr](#bvdtpld-1-newStr) = insertBefore([str](#bvdtpld-1%5Fsep%5Fbu4l86d-str),[pat](#bvdtpld-1-endStr),[newText](#bvdtpld-1-newText))
inserts newText
into str
before the substring specified by pat
and returns the result asnewStr
. If pat
occurs multiple times instr
, then insertBefore
inserts text before every occurrence of pat
.
If str
is a string array or a cell array of character vectors, then insertBefore
inserts newText
into each element of str
. The output argument newStr
has the same data type as str
.
[newStr](#bvdtpld-1-newStr) = insertBefore([str](#bvdtpld-1%5Fsep%5Fbu4l86d-str),[pos](#bvdtpld-1-endPos),[newText](#bvdtpld-1-newText))
inserts the text specified by newText
into str
before the position specified by pos
.
Examples
Create string arrays and insert text before substrings.
You can create strings using double quotes.
str = "bread cheese wine"
str = "bread cheese wine"
Insert a comma before each space character in the string. The insertBefore
function inserts text before each matching substring.
newStr = insertBefore(str," ",",")
newStr = "bread, cheese, wine"
Insert substrings into each element of a string array. When you specify different substrings as positions, they must be contained in a string array or a cell array that is the same size as str
.
str = ["The quick fox jumps";"over the dog"]
str = 2×1 string "The quick fox jumps" "over the dog"
newStr = insertBefore(str,[" fox";" dog"],[" brown";" lazy"])
newStr = 2×1 string "The quick brown fox jumps" "over the lazy dog"
Since R2020b
Create a string array of file names, including full paths.
str = ["C:\Temp\MyReport.docx"; "C:\Data\Experiment1\Trial1\Sample1.csv"; "C:\Temp\Slides.pptx"]
str = 3×1 string "C:\Temp\MyReport.docx" "C:\Data\Experiment1\Trial1\Sample1.csv" "C:\Temp\Slides.pptx"
Insert a new folder name at the end of each path, just before the file name. To match the file names, create a pattern that matches the last "\"
character and all remaining text to the end of a string. Use the wildcardPattern
function to match all characters except "\"
and the textBoundary
function to match the end of the string. Then call insertBefore
to insert the new folder name before the matching text.
pat = "" + wildcardPattern("Except","") + textBoundary
pat = pattern Matching:
"\" + wildcardPattern("Except","\") + textBoundary
filenames = insertBefore(str,pat,"\20200601")
filenames = 3×1 string "C:\Temp\20200601\MyReport.docx" "C:\Data\Experiment1\Trial1\20200601\Sample1.csv" "C:\Temp\20200601\Slides.pptx"
For a list of functions that create pattern objects, see pattern.
Create string arrays and specify positions to insert substrings.
You can create strings using double quotes.
Insert a substring before the seventh character.
newStr = insertBefore(str,7,"Clerk ")
newStr = "James Clerk Maxwell"
Insert substrings into each element of a string array. When you specify different positions with numeric arrays, they must be the same size as the input string array.
str = ["James Maxwell";"Carl Gauss"]
str = 2×1 string "James Maxwell" "Carl Gauss"
newStr = insertBefore(str,[7;6],["Clerk ";"Friedrich "])
newStr = 2×1 string "James Clerk Maxwell" "Carl Friedrich Gauss"
Create a character vector and insert text before a specified position.
chr = 'mushrooms and onions'
chr = 'mushrooms and onions'
Insert text before the tenth position.
newChr = insertBefore(chr,10,', peppers,')
newChr = 'mushrooms, peppers, and onions'
Insert text before a substring.
newChr = insertBefore(chr,' and',', peppers,')
newChr = 'mushrooms, peppers, and onions'
Input Arguments
Input text, specified as a string array, character vector, or cell array of character vectors.
Text or pattern in str
that marks the end position for inserted text, specified as one of the following:
- String array
- Character vector
- Cell array of character vectors
- pattern array (since R2020b)
If str
is a string array or cell array of character vectors, then you can insert text into every element ofstr
. You can specify that the insertions either all have the same end or have different ends in each element ofstr
.
- To specify the same end, specify
pat
as a character vector, string scalar, orpattern
object. - To specify different ends, specify
pat
as a string array, cell array of character vectors, orpattern
array.
End position, specified as a numeric array.
If str
is a string array or cell array of character vectors, then pos
can be a numeric scalar or numeric array of the same size as str
.
Text to insert, specified as a string array, character vector, or cell array of character vectors.
If str
is a string array or cell array of character vectors, then newText
can be a character vector, string scalar, or a string array or cell array of the same size asstr
.
Output Arguments
Output text, returned as a string array, character vector, or cell array of character vectors. str
and newStr
have the same data type.
Extended Capabilities
TheinsertBefore
function supports tall arrays with the following usage notes and limitations:
- If
pat
is an array of pattern objects, the size of the first dimension of the array must be 1.
For more information, see Tall Arrays.
Usage notes and limitations:
str
,pat
, andnewText
must be a string scalar, a character vector, or a cell array containing not more than one character vector.
Version History
Introduced in R2016b