Foros del Web » Programando para Internet » PHP »

ayuda con expresion regular

Estas en el tema de ayuda con expresion regular en el foro de PHP en Foros del Web. hola, estoy haciendo una expresion regular Código PHP: if ( preg_match_all ( '|^(.*){1} - Abroad|' , $CP , $out , PREG_SET_ORDER )){              $Ciudad  =  $out [ 0 ...
  #1 (permalink)  
Antiguo 31/08/2009, 14:00
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
ayuda con expresion regular

hola, estoy haciendo una expresion regular
Código PHP:
if (preg_match_all('|^(.*){1} - Abroad|',$CP,$out,PREG_SET_ORDER)){
            
$Ciudad $out[0][1];
            
$Provincia $out[0][1];
}
echo 
$Ciudad;
echo 
$Provincia
le estoy pasando varios strings por ejemplo estos:
Auckland - New Zealand - Abroad
Auckland - Abroad

osea quiero que solo coincida con Auckland - Abroad , con esto no Auckland - New Zealand - Abroad

pero esta coincidiendo con ambos, pueden ayudarme?
Thanks
  #2 (permalink)  
Antiguo 31/08/2009, 14:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: ayuda con expresion regular

Te sugiero en este caso no usar preg_match_all sino preg_match.

Código php:
Ver original
  1. <?php
  2. $s = "Auckland - New Zealand - Abroad
  3. Auckland - Abroad";
  4. preg_match('/(\w+) \- Abroad/',$s,$out);
  5. print_r($out);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 31/08/2009, 14:56
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: ayuda con expresion regular

Cita:
Iniciado por abimaelrc Ver Mensaje
Te sugiero en este caso no usar preg_match_all sino preg_match.

Código php:
Ver original
  1. <?php
  2. $s = "Auckland - New Zealand - Abroad
  3. Auckland - Abroad";
  4. preg_match('/(\w+) \- Abroad/',$s,$out);
  5. print_r($out);

ummm, Auckland - New Zealand - Abroad y Auckland - Abroad
no van juntos sino separados, osea
la funcion primero evalua uno
Código PHP:
$s "Auckland - New Zealand - Abroad" 
y luego el otro
Código PHP:
$s "Auckland - Abroad" 
he probado tu codigo y me esta devolviendo esto:

Ciudad: e

Provincia: e

para ambos casos :(
  #4 (permalink)  
Antiguo 31/08/2009, 15:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: ayuda con expresion regular

Tratalo de esta forma entonces.
Código php:
Ver original
  1. preg_match('/^(\w+) \- Abroad/',$s,$out);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 31/08/2009, 15:18
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: ayuda con expresion regular

Cita:
Iniciado por abimaelrc Ver Mensaje
Tratalo de esta forma entonces.
Código php:
Ver original
  1. preg_match('/^(\w+) \- Abroad/',$s,$out);
No esta entrando a la condicion
Código PHP:
if ( preg_match('/^(\w+) \- Abroad/',$CP,$out) ) {


que raro, mmmm
  #6 (permalink)  
Antiguo 31/08/2009, 15:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: ayuda con expresion regular

a mi me funcion, fijate en esto. Yo lo hice de esta forma y mira como salio
Código php:
Ver original
  1. <?php
  2. $s = "Auckland - Abroad";
  3. if (preg_match('/^(\w+) \- Abroad/',$s,$out)){
  4.   print_r($out);
  5. }
  6.  
  7. $s = "Auckland - New Zealand - Abroad";
  8. if (preg_match('/^(\w+) \- Abroad/',$s,$out)){
  9.   print_r($out);
  10. }

Trata los ejemplos para que veas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 31/08/2009, 16:01
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: ayuda con expresion regular

Cita:
Iniciado por abimaelrc Ver Mensaje
a mi me funcion, fijate en esto. Yo lo hice de esta forma y mira como salio
Código php:
Ver original
  1. <?php
  2. $s = "Auckland - Abroad";
  3. if (preg_match('/^(\w+) \- Abroad/',$s,$out)){
  4.   print_r($out);
  5. }
  6.  
  7. $s = "Auckland - New Zealand - Abroad";
  8. if (preg_match('/^(\w+) \- Abroad/',$s,$out)){
  9.   print_r($out);
  10. }

Trata los ejemplos para que veas.
efectivamente si esta entrando pero

cuando le pongo esto:

Código PHP:
$s =" New Zealand - Abroad" 
ya no entra,
al principio tiene un espacio en blanco, y tambien debo capturar la palabra completa New Zealand
  #8 (permalink)  
Antiguo 31/08/2009, 16:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: ayuda con expresion regular

Pues coloca entonces esto
Código php:
Ver original
  1. preg_match('/^\s*(\w+) \- Abroad/',$s,$out);

Te sugiero leer sobre expresiones regulares para que te puedas desenvolver
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
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 07:33.