extractBefore - Extract substrings before specified positions - MATLAB (original) (raw)
Extract substrings before specified positions
Syntax
Description
[newStr](#bvdto7k-1-newStr) = extractBefore([str](#bvdto7k-1%5Fsep%5Fbu4l86d-str),[pat](#bvdto7k-1-endStr))
extracts the substring that begins with the first character ofstr
and ends before the substring specified bypat
. If pat
occurs multiple times instr
, then newStr
is str
from the start of str
up to the first occurrence ofpat
.
If str
is a string array or a cell array of character vectors, then extractBefore
extracts substrings from each element ofstr
. The output argument newStr
has the same data type as str
.
[newStr](#bvdto7k-1-newStr) = extractBefore([str](#bvdto7k-1%5Fsep%5Fbu4l86d-str),[pos](#bvdto7k-1-endPos))
extracts the substring that begins with the first character ofstr
and ends before the position specified bypos
.
Examples
Create string arrays and select text that occurs before substrings.
str = "The quick brown fox"
str = "The quick brown fox"
Extract the substring that occurs before the substring " brown"
. The extractBefore
function selects the text but does not include " brown"
in the output.
newStr = extractBefore(str," brown")
Create a new string array from the elements 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 brown fox jumps";"over the lazy dog"]
str = 2×1 string "The quick brown fox jumps" "over the lazy dog"
newStr = extractBefore(str,[" brown";" dog"])
newStr = 2×1 string "The quick" "over the lazy"
You also can specify one substring as a position that is applied to all elements of the input string array.
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"
To extract the paths, first create a pattern that matches the file name at the end of a path, and then extract the path that comes before that pattern.
A full path can have several levels, each consisting of any text followed by a "\"
character. So start by creating a pattern that matches any characters except the "\"
character.
name = wildcardPattern("Except","")
name = pattern Matching:
wildcardPattern("Except","\")
Then, create a pattern that matches any name found between a "\"
character and the end of a string. Use the textBoundary
function to match the end of a string.
pat = "" + name + textBoundary
pat = pattern Matching:
"\" + wildcardPattern("Except","\") + textBoundary
Finally, call extractBefore
.
paths = extractBefore(str,pat)
paths = 3×1 string "C:\Temp" "C:\Data\Experiment1\Trial1" "C:\Temp"
For a list of functions that create pattern objects, see pattern.
Create strings before specified positions.
Select the substring before the sixth character.
newStr = extractBefore(str,6)
Select substrings from 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 = ["Edgar Allen Poe";"Louisa May Alcott"]
str = 2×1 string "Edgar Allen Poe" "Louisa May Alcott"
newStr = extractBefore(str,[6;7])
newStr = 2×1 string "Edgar" "Louisa"
Select substrings from each element and specify the same position.
newStr = extractBefore(str,12)
newStr = 2×1 string "Edgar Allen" "Louisa May "
Create a character vector. Then create new character vectors that are substrings of chr
.
chr = 'peppers and onions'
chr = 'peppers and onions'
Select the substring before the eighth position.
newChr = extractBefore(chr,8)
Select text before a substring.
newChr = extractBefore(chr,' and')
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 extracted text, specified as one of the following:
- String array
- Character vector
- Cell array of character vectors
- pattern array
The extractBefore
function excludespat
from the substring that is extracted.
If str
is a string array or cell array of character vectors, then you can extract substrings from every element ofstr
. You can specify that the substrings 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
.
Output Arguments
Output text, returned as a string array, character vector, or cell array of character vectors.
Extended Capabilities
TheextractBefore
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
andpat
must be a string scalar, a character vector, or a cell array containing not more than one character vector.
Version History
Introduced in R2016b