Open In App

Count occurrences of a word in string | Set 2 (Using Regular Expressions)

Improve
Improve
Like Article
Like
Save
Share
Report

Given a string str and a word w, the task is to print the number of the occurrence of the given word in the string str using Regular Expression.

Examples:

Input: str = “peter parker picked a peck of pickled peppers”, w = “peck”
Output: 1
Explanation: There is only one occurrence of the word “peck” in the given string. Therefore, the output is 1.

Input: str = “How much wood would a woodchuck chuck if a woodchuck could chuck wood ?”, w = “wood”
Output: 2
Explanation: There are only two occurrences of the word “wood” in the given string. 
Therefore, the output is 2.

Input: str = “She sells seashells by the seashore”, w = “sea”
Output: 0
Explanation: There is no occurrence of the word “sea” in the given string. Therefore, the output is 0.

Approach: The required regular expression to find the required count of string w in the given string is “\\bw\\b”, where \b is a word boundary. Follow the steps to solve the problem

regex = “\\bw\\b”

Below is the implementation of the above approach :

C++




// C++ program for the above approach
#include <iostream>
#include <regex>
using namespace std;
 
// Function to count total occurrences
// of word "w" in string "str"
void countOccurrences(string str, string w)
{
    // Get the regex to be checked
    string regexPattern = "\\b" + w + "\\b";
    const regex pattern(regexPattern);
 
    // Variable to count total
    // occurrences of the given word
    int count = 0;
 
    auto it
        = sregex_iterator(str.begin(), str.end(), pattern);
 
    for (it; it != sregex_iterator(); it++) {
 
        // Increment count
        count++;
    }
 
    // Print the occurrences of the word
    cout << count << endl;
 
    return;
}
 
// Driver Code
int main()
{
    // Input
    string str
        = "peter parker picked a peck of pickled peppers";
    string w = "peck";
 
    countOccurrences(str, w);
 
    return 0;
}


Java




// Java program for the above approach
import java.util.*;
import java.util.regex.*;
 
class GFG {
 
  // Function to count total occurrences
  // of word "w" in String "str"
  static void countOccurrences(String str, String w)
  {
     
    // Get the regex to be checked
    String regexPattern = "\\b" + w + "\\b";
 
    Pattern pattern = Pattern.compile(regexPattern);
     
    // Variable to count total
    // occurrences of the given word
    int count = 0;
 
    while (str.contains(w)) {
      str = str.replace(w, "");
      // Increment count
      count++;
    }
 
    // Print the occurrences of the word
    System.out.print(count + "\n");
 
    return;
  }
 
  // Driver Code
  public static void main(String[] args)
  {
     
    // Input
    String str = "peter parker picked a peck of pickled peppers";
    String w = "peck";
 
    countOccurrences(str, w);
  }
}
 
// This code is contributed by gauravrajput1


Python3




# Python program for the above approach
import re
 
# Function to count total occurrences
# of word "w" in String "str"
def countOccurrences(str,w):
    # Get the regex to be checked
    regexPattern = "\\b" + w + "\\b"
     
    # Variable to count total
    # occurrences of the given word
    count=0
     
    for m in re.finditer(regexPattern, str):
        # Increment count
        count=count+1
         
    # Print the occurrences of the word
    print(count)
     
# Driver Code
 
# Input
str = "peter parker picked a peck of pickled peppers"
w = "peck"
countOccurrences(str,w)
 
# This code is contributed by Pushpesh Raj.


C#




// C# program for the above approach
using System;
using System.Text.RegularExpressions;
public class GFG {
 
  // Function to count total occurrences
  // of word "w" in String "str"
  static void countOccurrences(String str, String w)
  {
 
    // Get the regex to be checked
    String regexPattern = "\\b" + w + "\\b";
 
    Regex rx = new Regex(regexPattern,RegexOptions.Compiled | RegexOptions.IgnoreCase);
    // Variable to count total
    // occurrences of the given word
    int count = 0;
 
    while (str.Contains(w)) {
      str = str.Replace(w, "");
      // Increment count
      count++;
    }
 
    // Print the occurrences of the word
    Console.Write(count + "\n");
 
    return;
  }
 
  // Driver Code
  public static void Main(String[] args)
  {
 
    // Input
    String str = "peter parker picked a peck of pickled peppers";
    String w = "peck";
 
    countOccurrences(str, w);
  }
}
 
// This code is contributed by gauravrajput1


Javascript




//// Javascript program for the above approach
function countOccurrences(string, substring) {
  var n = 0;
  var position = 0;
  while (true) {
    position = string.indexOf(substring, position);
    if (position != -1) {
      n++;
      position += substring.length;
    } else {
      break;
    }
  }
  return n;
}
console.log(countOccurrences("peter parker picked a peck of pickled peppers", "peck"));
// This code is contributed By Rahul Chauhan


Output

1

Time Complexity : O(N)
Auxiliary Space : O(N)



Last Updated : 15 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads