Estoy intentando parsear una hoja de estilo, con expresiones regulares. En mi intento de parsing, deseo encontrar todas las propiedades que coincidan, de la siguiente hoja de estilo
Código CSS:
Ver original
* { margin: 0; padding: 0; } body { border-top-color: #EAF3FA; /* Color barra superior */ border-top-style: solid; border-top-width: 30px; color: #333333; font-family: "Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana,sans-serif; /*border-top-color:#464646; */ font-size-adjust: none; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; } /* PARTE DE ARRIBA (TOP) ------------------------------------------------- */ #borde-top a { color: #0090EF; left: 15px; position: absolute; text-decoration: none; top: 7px; } .login #borde-top a:hover { color: #000; } /* TITULO PRINCIPAL (LOGO) ------------------------------------------------- */ h1 { background: url(../imagenes/header/logo-acceso-panel.png) no-repeat; display: block; height: 40px; margin-left: 15px; overflow: hidden; padding-bottom: 15px; text-indent: -9999px; width: 320px; } /* FORMULARIO ------------------------------------------------- */ form { -khtml-border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; font-weight: bold; margin-left: 8px; padding: 16px 16px 40px 16px; } form p { margin-bottom: 24px; } /* Tamaño del recuadro */ #login { margin: 7em auto; width: 350px; } /* Tamaño de las casillas USER Y PASS */ #user_pass, #user_login { font-size: 20px; margin-right: 6px; padding: 3px; width: 97%; } /* Color texto input */ #login form input { color: #555555; } /* Color de fondo LOGIN (azul claro) */ .login form { background-color: #eee; } /* CASILLA >> RECORDARME ------------------------------------------------- */ form .forgetmenot { float: left; font-weight: normal; margin-bottom: 0; margin-left: 2px; } /* BOTON >> INICIAR SESIÓN ------------------------------------------------- */ #login form .submit input { -khtml-border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; background-color: #CEE1EF; border-color: #80B5D0; border-radius: 3px; border-style: solid; border-width: 1px; border: none; color: #224466; cursor: pointer; float: right; font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif; font-size: 13px; margin-top: -6px; padding: 3px 5px; text-decoration: none; } #login form .submit input:hover { background-color: #9ACBEF; border-color: #328AB2; color: #FFF; } /* FOOTER FORMULARIO ------------------------------------------------- */ #nav { margin: 0 0 0 8px; padding: 16px; text-align: center; } .login #nav a { color: #777777; } /* MENSAJES DE ERROR (FORMULARIO) ------------------------------------------------- */ #login_error { background-color: #FFEBE8; border-color: #CC0000; border-style: solid; border-width: 1px; margin: 0 0 13px 8px; padding: 8px; }
Debería encontrar estas 3 propiedades
Código CSS:
Ver original
.login #borde-top a:hover{color:#000;} .login form{background-color:#eee;} .login #nav a { color: #777777; }
Y aquí la expresión regular que utilizo, que descrita sería algo así como
Encuentra todo lo que empiece por .login seguido de cualquier cosa tantas veces como quieras hasta encontrar una llave }
Código PHP:
Ver original
echo "<pre>"; echo "</pre>";
El resultado
Código:
Si quito la última llame me aparece mas cosas pero no me muestra todas las propiedades.<pre>Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) ) </pre>
Código PHP:
preg_match_all('/(\.login)(.*?)/is',$css,$matches);
Código:
Alguien es tan amable de echarme una mano?<pre>Array ( [0] => Array ( [0] => .login [1] => .login [2] => .login ) [1] => Array ( [0] => .login [1] => .login [2] => .login ) [2] => Array ( [0] => [1] => [2] => ) ) </pre>
Muchas gracias de antemano!