Main Content

count

Count occurrences of pattern in strings

Description

example

A = count(str,pat) returns the number of occurrences of pat in str.

If pat is an array containing multiple patterns, then count returns the sum of the occurrences of all elements of pat in str. count matches elements of pat in order, from left to right. Text segments in str can only be matched once.

example

A = count(str,pat,'IgnoreCase',true) ignores case when counting the number of occurrences of pat.

Examples

collapse all

Count the number of occurrences of the string, red, in string arrays.

You can create a string using double quotes.

str = "paired with red shoes"
str = 
"paired with red shoes"

To count the occurrences of red, use the count function. In this example, the result is 2 because red is also part of the word paired.

A = count(str,"red")
A = 2

Create a 2-by-1 string array.

str = ["red green red red blue blue green";
       "green red blue green green blue"]
str = 2x1 string
    "red green red red blue blue green"
    "green red blue green green blue"

Count the occurrences of red in each element of str. If str is a string array or cell array of character vectors, then A is a numeric array that has the same size.

A = count(str,"red")
A = 2×1

     3
     1

Since R2020b

Create a string array that contains addresses.

str = ["221B Baker St.","Tour Eiffel Champ de Mars","4059 Mt Lee Dr."]
str = 1x3 string
    "221B Baker St."    "Tour Eiffel Champ de Mars"    "4059 Mt Lee Dr."

To count the digits in each address, first create a pattern that matches a single digit. The number of times this pattern occurs in a string equals the number of digits in the string.

Create the pattern by calling the digitsPattern function with 1 as the input argument. When you do this, it matches a single digit (such as 2) instead of an arbitrary sequence of digits (such as 221 or 4059).

pat = digitsPattern(1)
pat = pattern
  Matching:

    digitsPattern(1)

Then call the count function with str and pat as inputs.

A = count(str,pat)
A = 1×3

     3     0     4

Similarly, you can count the number of letters (not including digits, spaces, or punctuations marks) by using the pattern created by lettersPattern(1).

A = count(str,lettersPattern(1))
A = 1×3

     8    21     7

Count sequences consisting of one or more digits and then one letter. You can build more complex patterns by combining simple patterns. In this case, digitsPattern + lettersPattern(1) matches 221B.

pat = digitsPattern + lettersPattern(1);
A = count(str,pat)
A = 1×3

     1     0     0

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

Count the total number of occurrences of red and blue in a string array.

You can create strings using double quotes.

str = ["red green blue";
       "green red blue green blue"]
str = 2x1 string
    "red green blue"
    "green red blue green blue"

count returns 2 for the first string because red and blue each occur once. count returns 3 for the second string because red occurs once and blue occurs twice.

A = count(str,["red","blue"])
A = 2×1

     2
     3

Count the number of occurrences of the letter E in a string array that contains names, ignoring case.

You can create strings using double quotes.

str = ["Edgar Allan Poe";"Louisa May Alcott"]
str = 2x1 string
    "Edgar Allan Poe"
    "Louisa May Alcott"

A = count(str,'E','IgnoreCase',true)
A = 2×1

     2
     0

Count the number of times al occurs in the word alphabetical.

chr = 'alphabetical'
chr = 
'alphabetical'
A = count(chr,'al')
A = 2

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