Expresión regular para resaltar palabras en comillas int qt5
-
21-12-2019 - |
Pregunta
Utilizo la clase QHighlighter, y usé REGEXP para resaltar las palabras en las cotizaciones:
void Highlighter::highlightBlock(const QString &text)
{
QRegExp expr("\"(.*?)\"");
int index = expr.indexIn(text);
while(index >=0)
{
int length = expr.matchedLength();
setFormat(index, length, Qt::red);
index = expr.indexIn(text, index+length);
}
}
no funciona.Trabaja esto:
"\".*\""
Pero resalta innecesario.¿Qué expresión regular es correcta?
Solución
solo hincrifE todo entre comillas
QRegExp("\"([^\"]*)\"");
Resalte las palabras individuales (Ejecutar en bucle con offset para coincidir con las palabras)
QRegExp("\"(\\w)*\"");
Otros consejos
Cómo coincidir con las palabras en las cotizaciones:
('|")[^\1]*?\1
Ejemplo:
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow