Cita:
Iniciado por pateketrueke jeje.. es cierto, me falto lo que puede haber entre
.login y el primer
{ Código PHP:
$str = '.login #borde-top a:hover{color:#000;}
.login form{background-color:#eee;}
.login #nav a { color: #777777; }';
preg_match_all('/\.login\s*[#\s\w:-]*\{[^\}]*\}/is', $str, $matches);
var_dump($matches);
Ahora sí! gracias
pateketrueke, tremendo.
Intento mejorarlo :P, en el caso que no empiece por .login sino que puede que empiece pero no puede que no...
Ejemplo:
Código CSS:
Ver original#myform form .login input:hover {
background-color: #9ACBEF;
border-color: #328AB2;
color: #FFF; }
Entiendo que la clave está en el primer \.login
Si para indicar uno u otro es con la tubería |
Y los claudators [ ] indican un rango, pienso que algo así quedaría feo, ya lo he probado y no funcionó
[\.login | \w*\s* \.login]
[ [\.login] | [ [\w\s]*\.login] ]
Luego llegué a una versión más reducida
[\.login | ^\.login]
Y este mi ultimo intento razonando más aún si cabe!
Si esto es que no empiece con .login [^\.login]
Y esto es que puede tener estos caracteres 0 o más veces [#\s\w:-]*
[#\s\w:-]*\.login
Qué te parece la expresión y el resultado? Me aparece espacios o saltos de linea al comienzo de los arrays [0] => [1] => [2] =>
Código PHP:
preg_match_all('/[#\s\w:-]*\.login\s*[#\s\w:-]*\{[^\}]*\}/is',$css,$matches);
Resultado
Código:
Array
(
[0] => Array
(
[0] =>
.login #borde-top a:hover { color: #000; }
[1] =>
.login form { background-color: #eee; }
[2] =>
.login #nav a { color: #777777;
color: #777777;
color: #777777;
}
[3] =>
#myform form .login input:hover {
background-color: #9ACBEF;
border-color: #328AB2;
color: #FFF; }
)
)