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
- Cree el patrón de expresión regular para la palabra w
expresión regular = «\\b w \\b»
- Atraviese la string , haga coincidir la expresión regular con la string str usando regex_iterator() . Simultáneamente, actualice el número de coincidencias.
- Imprime el número total de coincidencias obtenidas en el paso anterior.
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
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