Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2011, 20:43
Avatar de zacktagnan
zacktagnan
 
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 1 mes
Puntos: 3
Marcar palabras

Hola:

Estaba buscando algo que me ayudara a marcar un texto de búsqueda, sea una única palabra o una cadena de varias. Y con este código lo consigo casi en todas las posibilidades que se me ocurren.

Es decir, si se busca "para", marcará cosas como el propio vocablo "para", que empiecen por "para" como "paracaidas", que terminen por "para" como "compara", pero no que la contenga, es decir, algo como "preparado" no se marcaría.

Y esto es lo que me gustaría marcar igualmente. Luego, ¿cómo se debería modificar el segundo parámetro del array_push($patron, ...) para añadir esta opción de marcado?
Esto ¿implicaría modificar también la línea de $array_push($reemplazo,...)?

Ya que estamos, me gustaría saber si alguien me pudiera explicar detalladamente lo que significa el trozo de código:

"/\b($array_cadena[$i])+\b|\b([des|il|in|im|ir|un|non]+)\B($array_cadena[$i]+\b)|\b($array_cadena[$i]+)\B([ed|er|ing|s|es|ful|less|dom|ship|ness|hood|ty|ance |ment|ly|ally|fuly|est|]+\b)/i"

Concretamente:
- Se trata de un patrón de búsqueda para buscar la cadena deseada de 3 maneras diferentes, cada una de ellas separada por el carácter de | que es como un OR?
- ¿Por qué empieza por /?
- ¿qué es \b al principio o al final o tras el + o dentro de los () tras el +?
- ¿es lo mismo \b que \B?
- ¿qué es /i?
- Por ejemplo, del trozo a explicar, esto que sigue \b([des|il|in|im|ir|un|non]+)\B($array_cadena[$i]+\b) ¿es para encontrar resultados de palabra que empiecen por des o il o in o ... nom y sigan por la variable $array_cadena[$i] ?
Luego si pongo así:
\b([a-z]+)\B($array_cadena[$i]+\b)
buscará todo lo que empiece por cualquier prefijo más la variable recorrida, ¿no?
Y si pongo así:
\b($array_cadena[$i]+)\B([a-z]+\b)
buscaría todo lo que empiece la variable recorrida más cualquier sufijo, ¿no?

Entonces lo siguiente, ¿valdría para buscar algo que empezara por cualquier cosa seguido de la variable recorrido más cualquier cosa?:
\b([a-z]+)\B($array_cadena[$i]+)\B([a-z]+\b)
Y sino, ¿cómo sería?

Igualmente, ¿a que se refiere o a que llama cada uno de los $1 $2 $3 ... que están dentro de ?

array_push($reemplazo, "<subC$i>$1$2$3$4$5</subC$i>");

Para terminar, tampoco entendí a que se refería Hidek 1 cuando en su respuesta decía que
Cita:
al patron agregale una s final despues de la i
. ¿Para qué valdría esa s?, ¿habría que poner /i/s o que?

Espero encarecidamente las respuestas a todo lo expuesto. Gracias.
__________________
Saludos,

zacktagnan.
=================================================

Última edición por zacktagnan; 02/05/2011 a las 04:54