std::regex_replace() se usa para reemplazar todas las coincidencias en una string,
Sintaxis:
regex_replace(subject, regex_object, replace_text)
Parámetros: Acepta tres parámetros que se describen a continuación:
- String de asunto como primer parámetro.
- El objeto regex como segundo parámetro.
- La string con el texto de reemplazo como tercer parámetro.
Valor devuelto: la función devuelve una nueva string con los reemplazos aplicados.
- $& o $0 se usa para insertar la coincidencia de expresiones regulares completa.
- Se utiliza $1, $2,… hasta $9 para insertar el texto que coincide con los primeros nueve grupos de captura.
- $` (marca de retroceso) se usa para insertar la string que queda de la coincidencia.
- $’ (comilla) se usa para insertar la string que está a la derecha de la coincidencia.
- Si el número de grupos de captura es menor que el solicitado, se reemplazará por nada.
Ejemplos:
supongamos que se crea un objeto regex re(“(geeks)(.*)”) y la string de asunto es: subject(“todo se trata de geeksforgeeks”) , desea reemplazar la coincidencia por el contenido de cualquier grupo de captura ( por ejemplo, $0, $1, … hasta 9).
Ejemplo-1:
Reemplace la coincidencia por el contenido de $1.
Aquí la coincidencia es «geeksforgeeks» que será reemplazada por $1 («geeks»).
Por lo tanto, el resultado «se trata de geeks».Ejemplo-2:
Reemplace la coincidencia por el contenido de $2.
Aquí la coincidencia es «geeksforgeeks» que será reemplazada por $2 («forgeeks»).
Por lo tanto, el resultado «se trata de forgeeks».
A continuación se muestra el programa para mostrar el funcionamiento de regex_replace.
// C++ program to show the working // of regex_replace #include <bits/stdc++.h> using namespace std; int main() { string subject("its all about geeksforgeeks"); string result1, result2, result3, result4; string result5; // regex object regex re("(geeks)(.*)"); // $2 contains, 2nd capturing group which is (.*) means // string after "geeks" which is "forgeeks". hence // the match(geeksforgeeks) will be replaced by "forgeeks". // so the result1 = "its all about forgeeks" result1 = regex_replace(subject, re, "$2"); // similarly $1 contains, 1 st capturing group which is // "geeks" so the match(geeksforgeeks) will be replaced // by "geeks".so the result2 = "its all about geeks". result2 = regex_replace(subject, re, "$1"); // $0 contains the whole match // so result3 will remain same. result3 = regex_replace(subject, re, "$0"); // $0 and $& contains the whole match // so result3 will remain same result4 = regex_replace(subject, re, "$&"); // Here number of capturing group // is 2 so anything above 2 // will be replaced by nothing. result5 = regex_replace(subject, re, "$6"); cout << result1 << endl << result2 << endl; cout << result3 << endl << result4 << endl << result5; return 0; }
its all about forgeeks its all about geeks its all about geeksforgeeks its all about geeksforgeeks its all about
Publicación traducida automáticamente
Artículo escrito por vivek kumar 9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA