Actualmente tengo un gran lote de texto HTML y tengo varias propiedades CSS similares a los siguientes:expresión regular para coincidir con un CSS propiedad individual
font:16px/normal Consolas;
font:16px/normal Arial;
font:12px/normal Courier;
que también se incluye con varias otras propiedades CSS y otros asociados Valores HTML y etiquetas
He estado tratando de escribir una expresión regular que sólo va a captar estos "estilos de fuente", por lo que si tuviera los siguientes dos párrafos:
<p style='font:16px/normal Arial; font-weight: x; color: y;'>Stack</p>
<span style='color: z; font:16px/normal Courier;'>Overflow</span>
<br />
<div style='font-family: Segoe UI; font-size: xx-large;'>Really large</div>
que sólo coinciden con las propiedades y comenzando con font:
terminando con un punto y coma ;
.
He jugado alrededor de usar RegexHero y el más cercano que he conseguido era:
\b(?:font[\s*\\]*:[\s*\\]*?(\b.*\b);)
que arrojó los siguientes resultados:
font:bold; //Match
font:12pt/normal Arial; //Match
font:16px/normal Consolas; //Match
font:12pt/normal Arial; //Match
property: value; //Not a Match
property: value value value; //Not a Match
pero cuando he tratado de dejar caer en un gran bloque de HTML, las cosas parecían confundirse y se seleccionaron bloques grandes en lugar de dentro de los límites especificados previamente.
Estaré encantado de proporcionar cualquier información adicional y datos de prueba que pueda.
¿No debería usar los delimitadores para obtener la coincidencia exacta? Algo así como^(\ b (?: Font [\ s * \\] *: [\ s * \\] *? (\ B. * \ B);)) $ – pollirrata