Match_results ::operator[] es una función construida en C++ que solía obtener la i-ésima coincidencia en el objeto match_result. Da la referencia a la coincidencia en la posición dada dentro del operador.
Sintaxis:
smatch_name[N] Note: smatch_name is an object of match_results class.
Parámetros: Acepta un único parámetro N que especifica el número de Match. Es menor que match_results::size. El número de coincidencia 0 representa la expresión coincidente completa. Los números de coincidencia subsiguientes identifican las subexpresiones, si las hay. La integral pasada es un tipo de integral sin signo.
Valor de retorno: Devuelve la referencia directa a la coincidencia en la N-ésima coincidencia.
Nota: el primer elemento siempre contiene la coincidencia de expresiones regulares completa, mientras que los demás contienen el grupo de captura particular .
Los siguientes programas ilustran la función anterior.
Programa 1:
CPP
// CPP program to illustrate // match_results operator[] in C++ #include <bits/stdc++.h> using namespace std; int main() { string s("Geeksforgeeks"); regex re("(Geeks)(.*)"); smatch match; regex_match(s, match, re); // use of operator[]--> returns the // reference to the match at i-th position cout << "Matches are:" << endl; for (int i = 0; i < match.size(); i++) { cout << "match " << i << " is " << match[i] << endl; } }
Matches are: match 0 is Geeksforgeeks match 1 is Geeks match 2 is forgeeks
Programa 2:
CPP
// CPP program to illustrate // match_results operator[] in C++ // Find maximum length #include <bits/stdc++.h> using namespace std; int main() { string s("Geeksforgeeks"); regex re("(Ge)(eks)(.*)"); smatch match; regex_match(s, match, re); int max_length = 0; string str; // Since the first match is the whole string we do not consider it. for (int i = 1; i < match.size(); i++) { if (match.length(i) > max_length) { str = match[i]; max_length = match.length(i); } } cout << "max-length sub match is " << str << " with a length of " << max_length << endl; return 0; }
max-length sub match is forgeeks with a length of 8
Publicación traducida automáticamente
Artículo escrito por Harsha_Mogali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA