Cita:
Iniciado por jurena La idea es esta , pero no he probado nada.
Pero no sé por qué necesitas usar expresiones regulares para eso si quizás no es necesario y las expresiones no son muy eficientes. Esta sería la idea
Muchas gracias por responder.
He probado tus sugerencias , estan correctas ( o sea funcionan ) pero ninguna no me da el resultado deseado.
Tambien he leido muchas veces esto que las expresiones regulares son lentas pero no se que otra cosa utilizar para obtener lo mismo pero sin usarlas.
Pongo aqui mi pseudo codigo como ejemplo ( o sea lo que quiero que haga la consulta ) y si tienes alguna sugerencia ... Bienvenida sea
Mis palabras excluidas:
Código:
$palabras_excluidas = array('para','palabra2','palabra3');
Mi busqueda: Supongamos que mi_columna contiene las siguientes filas: Cita: 1. "algo para estar acaparado"
2. "parachoques rotos para coches"
3. "alguien que esta parado"
Algoritmo Condiciones: Cita: 1. Se comprueba cada palabra de mi_columna (no solo el principio de la frase) si hay palabras que empiezan por "par" descartando las que contiene pero no al principio (ej: "acaparado")
2. Al encontrar palabra que empieza con "par" se compara dicha palabra (palabra entera esta vez ) ej "para" o "paracoches" con el array $palabras_excluidas
3. Si en el punto 2. se encuentran solo palabras excluidas se considera respuesta NO VALIDA y descarta esta fila
4. Si en el punto 2 se encuentran palabras excluidas pero también NO Excluidas se considera respuesta VALIDA y se agrega esta fila a la respuesta
5. Si en el punto 2 se encuentran solo palabras No Excluidas se considera respuesta VALIDA y se agrega esta fila a la respuesta
Mi respuesta deseada es: que la consulta me devuelva las filas 2 y 3
porque la fila 2 al tener al menos una palabra "
parachoques" que empieza por "
par" que es $mi_busqueda no la descarte del resultado aunque tenga la palabra "
para" que esta en las excluidas
y la fila 3 tiene una palabra "
parado" que empieza con "
par" aunque no esta al principio de la frase
y que no devuelva la fila 1 porque "aca
parado" no empieza por "
par" y aunque tiene otra palabra "
para" que si empieza por "
par" pero esta entre las excluidas y al no tener al menos una palabra valida que empieze por "
par" que la descarte del resultado.
Ahora ... no importa la solucion que sea por REGEXP o no o hibrida ... importante seria el resultado.
Espero que se entienden mis dudas
Otra vez gracias por haber ya respondido