Foros del Web » Programando para Internet » PHP »

Añadir condiciones a expresión regular

Estas en el tema de Añadir condiciones a expresión regular en el foro de PHP en Foros del Web. Hola amigos. Tengo esta expresión regular: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original preg_match ( "/" . $cadBus [ 0 ] . "{1}.+/is" , $row [ ...
  #1 (permalink)  
Antiguo 20/02/2010, 10:02
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 10 meses
Puntos: 29
Añadir condiciones a expresión regular

Hola amigos.
Tengo esta expresión regular:
Código PHP:
Ver original
  1. preg_match("/".$cadBus[0]."{1}.+/is",$row['texto'],$matches);

Funciona correctamente. Lo que hace es buscar la primera palabra de una cadena de búsqueda en un texto con la primera coincidencia {1}. El tema es que el array $carBus puede tener uno o más elementos. Lo que me gustaría saber es cómo añadir más elementos a la expresión. Algo como esto:

Código PHP:
Ver original
  1. preg_match("/[".$cadBus[0]."][".$cadBus[1]."][".$cadBus[2]."]{1}.+/is",$row['texto'],$matches);

No sé si me explico.

Saludos y gracias.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #2 (permalink)  
Antiguo 20/02/2010, 10:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Añadir condiciones a expresión regular

lee el siguiente tema:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 20/02/2010, 11:04
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 10 meses
Puntos: 29
Respuesta: Añadir condiciones a expresión regular

Gracias, lo he solucionado! Yo me guiaba en las expresiones regulares por este link:
http://www.ignside.net/man/php/regex.php
Pero no me aclaraba mucho. Lo he solucionado así:

Código PHP:
Ver original
  1. $cadBus=explode(" ",$cadenaBusqueda);
  2. $asieio;
  3. for($i=0; $i<count($cadBus); $i++) {
  4.  
  5.     $asieio.=$cadBus[$i]."|";
  6.  
  7. }
  8. $asieio = substr ($asieio, 0, strlen($asieio) - 1);
  9. $funcion = preg_match("/[".$asieio."]{1}.+/is",$row['texto'],$matches);
Podéis ver el funcionamiento, pulsando en Búsqueda en el siguiente link:

http://unosyceros.aprendeprogramacion.net
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 20/02/2010, 11:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Añadir condiciones a expresión regular

tu expresión sigue esta estando mal... ya que debes usar paréntesis para agrupar distintas opciones, y tu estas utilizando corchetes...

Código PHP:
$foo explode(' ''candy bar ^^ does nothing');
$foo join('|'array_map('preg_quote'$foo));

// (candy|bar|\^\^|does|nothing)
$expr "/($foo)/"
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 20/02/2010, 14:39
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 10 meses
Puntos: 29
Respuesta: Añadir condiciones a expresión regular

Mmmm, entiendo. Entre paréntesis son opciones, y entre corchetes son un rango por ejemplo de caracteres o números no?

Gracias pateketrueke!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: añadir, condiciones, 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 01:10.