Búsqueda y reemplazo
Transforme texto con regex
Búsqueda y reemplazo es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C++ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C++ Academy incluye 4 lecciones en total.
regex_replace
std::regex_replace devuelve una cadena nueva en la que cada coincidencia de un patrón se reemplaza por una cadena de reemplazo.
- La cadena original no se modifica.
- De forma predeterminada, se reemplazan todas las coincidencias.
#include <iostream>
#include <regex>
int main() {
std::regex p("cat");
std::string s = "the cat and the cat";
std::cout << std::regex_replace(s, p, "dog") << '\n';
return 0;
}Reemplazar dígitos
Los patrones facilitan las modificaciones masivas, como ocultar cada dígito de una cadena con un marcador de posición.
#include <iostream>
#include <regex>
int main() {
std::regex p("\\d");
std::string s = "PIN 1234";
std::cout << std::regex_replace(s, p, "*") << '\n';
return 0;
}Referencias inversas en el reemplazo
Use $1, $2, ... en la cadena de reemplazo para insertar los grupos capturados y poder reorganizar el texto.
#include <iostream>
#include <regex>
int main() {
std::regex p("(\\w+) (\\w+)");
std::string s = "John Smith";
std::cout << std::regex_replace(s, p, "$2 $1") << '\n';
return 0;
}La coincidencia completa: $&
El token $& hace referencia a la coincidencia completa y resulta útil para envolver el texto encontrado con caracteres adicionales.
#include <iostream>
#include <regex>
int main() {
std::regex p("\\d+");
std::string s = "item 42";
std::cout << std::regex_replace(s, p, "[$&]") << '\n';
return 0;
}Reemplazar solo la primera
Pase std::regex_constants::format_first_only para reemplazar únicamente la primera coincidencia en lugar de todas las apariciones.
#include <iostream>
#include <regex>
int main() {
std::regex p("o");
std::string s = "foo boo";
auto out = std::regex_replace(s, p, "0", std::regex_constants::format_first_only);
std::cout << out << '\n';
return 0;
}Normalizar espacios en blanco
Una tarea de limpieza habitual consiste en convertir las secuencias de espacios en blanco en un solo espacio.
#include <iostream>
#include <regex>
int main() {
std::regex p("\\s+");
std::string s = "too many spaces";
std::cout << std::regex_replace(s, p, " ") << '\n';
return 0;
}Eliminar coincidencias
Reemplazar una coincidencia por una cadena vacía la elimina de manera efectiva, lo que resulta útil para quitar caracteres no deseados.
#include <iostream>
#include <regex>
int main() {
std::regex p("[^a-zA-Z]");
std::string s = "a1b2c3";
std::cout << std::regex_replace(s, p, "") << '\n';
return 0;
}Reformatear fechas
Capture las partes de una fecha y reordénelas en el reemplazo para cambiar el formato.
#include <iostream>
#include <regex>
int main() {
std::regex p("(\\d{4})-(\\d{2})-(\\d{2})");
std::string s = "2026-05-30";
std::cout << std::regex_replace(s, p, "$3/$2/$1") << '\n';
return 0;
}Conservar el texto sin coincidencias
De forma predeterminada, el texto sin coincidencias se copia tal cual. Use format_no_copy para mostrar únicamente los reemplazos y descartar el resto.
#include <iostream>
#include <regex>
int main() {
std::regex p("\\d+");
std::string s = "a1b2c3";
auto out = std::regex_replace(s, p, "$&", std::regex_constants::format_no_copy);
std::cout << out << '\n';
return 0;
}Censurar palabras
Combine la alternancia con el reemplazo para censurar una lista de palabras de una sola vez.
#include <iostream>
#include <regex>
int main() {
std::regex p("bad|evil");
std::string s = "a bad and evil idea";
std::cout << std::regex_replace(s, p, "***") << '\n';
return 0;
}Construcción progresiva de un resultado
Como regex_replace devuelve una cadena, puede encadenar transformaciones pasando un resultado a la siguiente llamada.
#include <iostream>
#include <regex>
int main() {
std::string s = " Hello, World ";
s = std::regex_replace(s, std::regex("\\s+"), " ");
s = std::regex_replace(s, std::regex("^ | $"), "");
std::cout << "[" << s << "]\n";
return 0;
}Comprobación rápida
Compruebe cuánto entiende de la sintaxis de reemplazo.
Resumen
Ha aprendido a transformar texto con regex_replace:
- reemplaza todas las coincidencias de forma predeterminada y devuelve una cadena nueva
$1,$2,$&insertan las capturas y la coincidencia completa- marcas como
format_first_onlyyformat_no_copy - encadene llamadas para crear procesos de limpieza complejos
A continuación, aprenderá a usar las expresiones regulares de forma eficiente y a evitar problemas habituales de rendimiento.
Preguntas frecuentes
¿La lección «Búsqueda y reemplazo» es gratis?
Sí — el texto completo de «Búsqueda y reemplazo» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C++ Academy, actualiza a CoddyKit PRO. El curso de C++ Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Búsqueda y reemplazo»?
Transforme texto con regex Practicas C++ Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar C++ Academy?
No se requiere experiencia previa. C++ Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Búsqueda y reemplazo»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de C++ Academy?
Sí. Cada lección de C++ Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Conceptos básicos de regex
- Grupos de captura
- Búsqueda y reemplazo
- Notas de rendimiento