Tengo una expresión regular en C++ con Boost que coincide con líneas en cadenas de varias líneas. La búsqueda de Regex encuentra la primera coincidencia, sin embargo, estoy interesado en la última línea que coincide.Obtener la última coincidencia con Boost :: Regex
El código que estoy usando ahora es algo como esto:
matched = boost::regex_search(input, results, regex);
if (!matched) {
return -1; // error code
}
matched_string = results["Group"];
Si regex
fue "(?<Group>Data.)"
y input
fue "Data1 Data2 Data3"
, entonces es ahora matched_string
"Data1"
. Quiero que sea "Data3"
.
El uso de 'smatch :: const_reference r = results [" Group "]' debe evitar algunas copias innecesarias. – maxschlepzig