Cuenta las apariciones de una palabra en una string | Conjunto 2 (usando expresiones regulares)

Dada una string str y una palabra w, la tarea es imprimir el número de aparición de la palabra dada en la string str usando la expresión regular.

Ejemplos:

Entrada: str = «peter parker tomó un bocado de pimientos en escabeche», w = «picotear»
Salida: 1
Explicación: Solo hay una ocurrencia de la palabra «picotear» en la string dada. Por lo tanto, la salida es 1.

Entrada: str = «¿Cuánta madera arrojaría una marmota si una marmota pudiera arrojar madera?», w = «madera»
Salida: 2
Explicación: Solo hay dos ocurrencias de la palabra «madera» en la string dada. 
Por lo tanto, la salida es 2.

Entrada: str = «Ella vende conchas marinas a la orilla del mar», w = «mar»
Salida: 0
Explicación: No aparece la palabra «mar» en la string dada. Por lo tanto, la salida es 0.

Enfoque: La expresión regular requerida para encontrar el conteo requerido de la string w en la string dada es “\\b w \\b” , donde \b es un límite de palabra. Sigue los pasos para resolver el problema

expresión regular = «\\b w \\b»

A continuación se muestra la implementación del enfoque anterior:

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

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
Producción

1

Tiempo Complejidad : O(N)
Espacio Auxiliar : O(N)

Publicación traducida automáticamente

Artículo escrito por yuvraj_chandra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *