Main Content

endsWith

Determine if strings end with pattern

Description

TF = endsWith(str,pat) returns 1 (true) if str ends with the specified pattern, and returns 0 (false) otherwise.

If pat is an array containing multiple patterns, then endsWith returns 1 if it finds that str ends with any element of pat.

example

TF = endsWith(str,pat,'IgnoreCase',true) ignores case when determining if str ends with pat.

example

Examples

collapse all

Create a string array that contains file names. Determine which file names end with the .gz extension.

str = ["abstract.docx","data.tar.gz","mycode.m"; ...
       "data-analysis.ppt","results.ptx","temp-archive.gz"]
str = 2x3 string
    "abstract.docx"        "data.tar.gz"    "mycode.m"       
    "data-analysis.ppt"    "results.ptx"    "temp-archive.gz"

Return a logical array where the position of each element equal to 1 corresponds to the position of a string in str that ends with .gz.

pat = ".gz";
TF = endsWith(str,pat)
TF = 2x3 logical array

   0   1   0
   0   0   1

Display the file names that end with .gz. Index back into str using TF.

str(TF)
ans = 2x1 string
    "data.tar.gz"
    "temp-archive.gz"

Create a string array of file and folder names, where some names have extensions.

str = ["abstract.docx","data.tar.gz","REPORTS"; ...
       "data-analysis.ppt","results.ptx","ARCHIVE"]
str = 2x3 string
    "abstract.docx"        "data.tar.gz"    "REPORTS"
    "data-analysis.ppt"    "results.ptx"    "ARCHIVE"

To find names that end with extensions, create a pattern that matches a period followed by letters by using the lettersPattern function. (You can build up a complex pattern by combining simple patterns in expressions. Such expressions can also include literal text, like "." in this example.)

pat = "." + lettersPattern
pat = pattern
  Matching:

    "." + lettersPattern

Return a logical array indicating which names end with extensions.

TF = endsWith(str,pat)
TF = 2x3 logical array

   1   1   0
   1   1   0

Display the matching names.

str(TF)
ans = 4x1 string
    "abstract.docx"
    "data-analysis.ppt"
    "data.tar.gz"
    "results.ptx"

Find the names with extensions that are exactly three letters long.

pat = "." + lettersPattern(3);
TF = endsWith(str,pat);
str(TF)
ans = 2x1 string
    "data-analysis.ppt"
    "results.ptx"

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

Create a string array that contains file names. Determine which file names end with the .docx, .xlsx, or .gz extensions.

str = ["data.tar.gz","mycode.m","outputs.xlsx","results.pptx"]
str = 1x4 string
    "data.tar.gz"    "mycode.m"    "outputs.xlsx"    "results.pptx"

pat = [".docx",".xlsx",".gz"];
TF = endsWith(str,pat)
TF = 1x4 logical array

   1   0   1   0

Display the file names that end with .docx, .xlsx, or .gz. Index back into str using TF.

str(TF)
ans = 1x2 string
    "data.tar.gz"    "outputs.xlsx"

Create a string array that contains file names. Determine which file names end with the .gz extension, ignoring case.

str = ["DATA.TAR.GZ","mycode.m","SUMMARY.PPT","tmp.gz"]
str = 1x4 string
    "DATA.TAR.GZ"    "mycode.m"    "SUMMARY.PPT"    "tmp.gz"

pattern = ".gz";
TF = endsWith(str,pattern,'IgnoreCase',true)
TF = 1x4 logical array

   1   0   0   1

Display the file names that end with .gz. Index back into str using TF.

str(TF)
ans = 1x2 string
    "DATA.TAR.GZ"    "tmp.gz"

Create a character vector that contains the name of a file. Determine whether the name ends with specified extensions.

chr = 'MyLatestPaper.docx'
chr = 
'MyLatestPaper.docx'
TF = endsWith(chr,'docx')
TF = logical
   1

TF = endsWith(chr,'gz')
TF = logical
   0

Input Arguments

collapse all

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

Search pattern, specified as one of the following:

  • String array

  • Character vector

  • Cell array of character vectors

  • pattern array (since R2020b)

Extended Capabilities

Version History

Introduced in R2016b