Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2008, 15:05
zaqpz
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Ayuda con expresión regular

Hola gente, hace un par de días estoy luchando para hacer una expresión regular que haga lo siguiente: extraer de una cadena de texto todos los signos de pregunta (?) siempre y cuando estos signos no esten dentro de comillas simples o dobles ("?") ni tampoco con comillas y espacios (" ? ").

Osea dentro de una cadena de este tipo:
Código PHP:
INSERT INTO tabla (col1col2col3col4col5VALUES (?, "?"" ? "" ?", ? ) 
debería extraer solo el primer y último signo de pregunta, ya que los del medio están entre comillas (y algunos comillas y luego espacios).

He llegado a una expresión que hace justo lo contrario... me extrae los signos del medio y me excluye los que quiero extraer, pero no encuentro forma de "invertirla" para conseguir justo lo contrario:
Código PHP:
$s='INSERT INTO tabla (col1, col2, col3, col4, col5) VALUES (?, "?", " ? ", " ?", ? )';
preg_match_all('/[\"\']\s*(\?)\s*[\"\']/'$s$m);
print_r($m); 
Muchas gracias de antemano.
Saludos.
__________________
R4DS en español | R4DS en inglés