Foros del Web » Programando para Internet » PHP »

Expresiones Regulares Buscar cadenas sin orden

Estas en el tema de Expresiones Regulares Buscar cadenas sin orden en el foro de PHP en Foros del Web. Hola a todos! No se si la pregunta sea de este foro, si no lo es, mil disculpas. La cuestion es la siguiente: Quisiera buscar ...
  #1 (permalink)  
Antiguo 05/02/2008, 15:04
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 4 meses
Puntos: 4
Expresiones Regulares Buscar cadenas sin orden

Hola a todos!

No se si la pregunta sea de este foro, si no lo es, mil disculpas.

La cuestion es la siguiente:

Quisiera buscar en una base de datos solo los registros que contengan dos palabras
sin importar el orden, pero que esten las dos, por ejemplo:

Registros que coincidan con las palabras: casa y roja

La casa en el monte, es color roja = si coincide

La roja puerta es de aquella casa = si coincide

La casa tiene dos ventanas = no coincide(porque falta la palabra roja)

Tengo una expresion ^.*(casa)+.*(roja)+.*$

Pero no me funciona, ya que las busca en ese orden exactamente.

Alguien sabe que metacaracter se debe agregar o en que orden podria dejar la expresion para que funcione de esta manera ?

De antemano muchas gracias!!!
  #2 (permalink)  
Antiguo 05/02/2008, 16:29
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Re: Expresiones Regulares Buscar cadenas sin orden

Y no podrias mejor usar una sentencia SQL usando el operador LIKE?
  #3 (permalink)  
Antiguo 13/02/2008, 22:55
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 4 meses
Puntos: 4
Re: Expresiones Regulares Buscar cadenas sin orden

De hecho ya tenia pensado hacerlo asi, pero andaba buscando una expresion regular para no tener que hacer varios LIKE AND con cada palabra de la frase a buscar.

Bueno ya busque buen rato y no encontre nada, creo que por ahora queda en misterio eso de la expresion regular, mientras tanto para salir del apuro lo deje
con LIKE como lo tenia desde un principio.

Gracias y hasta luego!
  #4 (permalink)  
Antiguo 14/02/2008, 07:04
Avatar de andruqui  
Fecha de Ingreso: agosto-2007
Mensajes: 269
Antigüedad: 16 años, 9 meses
Puntos: 2
Re: Expresiones Regulares Buscar cadenas sin orden

Te recomiendo usar indices FULL TEXT y busquedas MATCH AGAINST, se ajusta exactamente a lo que estas describiendo.

Código PHP:
SELECT 
FROM TABLA 
WHERE MATCH
(columna_a_comprarAGAINST ('+casa +roja' IN BOOLEAN MODE
Saludos
Andrés
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 03:32.