Foros del Web » Programando para Internet » PHP »

Problema con expresion regular, escapar coma

Estas en el tema de Problema con expresion regular, escapar coma en el foro de PHP en Foros del Web. Buenas, Tengo la siguiente expresión regular, funciona bien si no le pongo variable $propiedad Es decir si la llamo así @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver ...
  #1 (permalink)  
Antiguo 25/01/2010, 02:42
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Problema con expresion regular, escapar coma

Buenas,

Tengo la siguiente expresión regular, funciona bien si no le pongo variable $propiedad

Es decir si la llamo así
Código PHP:
Ver original
  1. [\.#\s\w:-]*\#user_pass[,\s+][\.#\s\w:-]*\{[^\}]*\}

Pero a la que le ponga

$propiedad='user_pass';


Código PHP:
Ver original
  1. preg_match_all("/[\.#\s\w:-]*\#$propiedad[,\s+]+[\.#\s\w:-]*\{[^\}]*\}/is",$css,$matches);

Me arroja este error
Parse error: syntax error, unexpected ',', expecting T_STRING or T_VARIABLE or T_NUM_STRING


SCRIPT
Código PHP:
Ver original
  1. <?
  2. $css='#login form .submit input:hover {
  3. background-color: #9ACBEF;
  4. border-color: #328AB2;
  5. color: #FFF; }
  6.  
  7. h1 #prueba, h2 #login {border:0px;
  8. color:red;
  9. }
  10.  
  11. #login_error {
  12.     background-color: #FFEBE8;
  13.     border-color: #CC0000;
  14.     border-style: solid;
  15.     border-width: 1px;
  16.     margin: 0 0 13px 8px;
  17.     padding: 8px; }
  18.  
  19. #user_pass, #user_login {font-size: 20px;
  20.     margin-right: 6px;
  21.     padding: 3px;
  22.     width: 97%; }
  23. ';
  24. $propiedad='user_pass';
  25. preg_match_all("/[\.#\s\w:-]*\#$propiedad[,\s+]+[\.#\s\w:-]*\{[^\}]*\}/is",$css,$matches);
  26.  
  27. echo "<pre>";
  28. print_r($matches[0]);
  29. echo "</pre>";
  30.  
  31. foreach ($matches[0] as $propiedad) {
  32.     echo $propiedad;
  33. }
  34. ?>

¿Alguien sabe por qué pasa esto?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 25/01/2010, 02:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con expresion regular, escapar coma

NOTA que la variable la estaría interpretando como una arreglo, por los corchetes...

simplemente debes encerrar la variable para que no sea así:
Código PHP:
$foo preg_quote('bar''/');
$candy "/\.{$foo}[,\s]+/"
también sería buena que uses preg_quote() por si la misma variable contiene mas meta caracteres regex... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/01/2010, 03:17
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Problema con expresion regular, escapar coma

Cita:
Iniciado por pateketrueke Ver Mensaje
NOTA que la variable la estaría interpretando como una arreglo, por los corchetes...

simplemente debes encerrar la variable para que no sea así:
Código PHP:
$foo preg_quote('bar''/');
$candy "/\.{$foo}[,\s]+/"
también sería buena que uses preg_quote() por si la misma variable contiene mas meta caracteres regex... ;)
Tomo nota, funcionó a la perfección. Muchas gracias pateketrueke

Etiquetas: coma, escapar, expresion, regular
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:18.