Main Content

extractBefore

Extract substrings before specified positions

Description

example

newStr = extractBefore(str,pat) extracts the substring that begins with the first character of str and ends before the substring specified by pat. If pat occurs multiple times in str, then newStr is str from the start of str up to the first occurrence of pat.

If str is a string array or a cell array of character vectors, then extractBefore extracts substrings from each element of str. The output argument newStr has the same data type as str.

example

newStr = extractBefore(str,pos) extracts the substring that begins with the first character of str and ends before the position specified by pos.

Examples

collapse all

Create string arrays and select text that occurs before substrings.

Starting in R2017a, you can create strings using double quotes.

str = "The quick brown fox"
str = 
"The quick brown fox"

If you are using R2016b, create string arrays using the string function instead of double quotes.

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")
newStr = 
"The quick"

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 = 2x1 string
    "The quick brown fox jumps"
    "over the lazy dog"

newStr = extractBefore(str,[" brown";" dog"])
newStr = 2x1 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.

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 = 3x1 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 = 3x1 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.

Starting in R2017a, you can create strings using double quotes.

str = "Edgar Allen Poe"
str = 
"Edgar Allen Poe"

Select the substring before the sixth character.

newStr = extractBefore(str,6)
newStr = 
"Edgar"

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 = 2x1 string
    "Edgar Allen Poe"
    "Louisa May Alcott"

newStr = extractBefore(str,[6;7])
newStr = 2x1 string
    "Edgar"
    "Louisa"

Select substrings from each element and specify the same position.

newStr = extractBefore(str,12)
newStr = 2x1 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)
newChr = 
'peppers'

Select text before a substring.

newChr = extractBefore(chr,' and')
newChr = 
'peppers'

Input Arguments

collapse all

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 (since R2020b)

The extractBefore function excludes pat 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 of str. You can specify that the substrings either all have the same end or have different ends in each element of str.

  • To specify the same end, specify pat as a character vector, string scalar, or pattern object.

  • To specify different ends, specify pat as a string array, cell array of character vectors, or pattern 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

collapse all

Output text, returned as a string array, character vector, or cell array of character vectors.

Extended Capabilities

Introduced in R2016b