Foros del Web » Programando para Internet » PHP »

Buscar inicio y fin palabra Regex

Estas en el tema de Buscar inicio y fin palabra Regex en el foro de PHP en Foros del Web. Hola. Estoy tratando de matchear dentro de un texto las palabras, mientras sea una palabra completa y no matchee la porcion del texto, por ejemplo: ...
  #1 (permalink)  
Antiguo 23/10/2012, 14:18
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 22 años, 5 meses
Puntos: 6
Buscar inicio y fin palabra Regex

Hola.
Estoy tratando de matchear dentro de un texto las palabras, mientras sea una palabra completa y no matchee la porcion del texto, por ejemplo:

Texto: "Esta es una campaña politica"
Expression: "campa"

Si no quiero que encuentre campaña, mi regex deberia ser asi: /\bcampa\b/
Pero \b toma las ñ, acentos y otros caracteres como que no es parte de la palabra.

Necesito saber como hacer para que la regla sea por la palabra completa, incluso con esos caracteres.

Gracias.
__________________
"Vivir....solo cuesta Vida"
  #2 (permalink)  
Antiguo 23/10/2012, 14:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Buscar inicio y fin palabra Regex

Hay varias formas de pensar esto, el significado de \b sería "algún separador" lo cual implicaría espacio, inicio o final de la cadena, o cualquier carácter que no sea alfa numérico.

Podrías simplificar esto especificando unicamente lo que consideres un separador, yo lo haría así.
Cita:
(\s+|^)campa(\s+|$)
Al fin y al cabo tu problema no es de código php sino de expresiones regulares, que es un sub lenguaje bastante aparte e independiente.

Por cierto, te sugiero leer esto:
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 24/10/2012, 08:13
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 22 años, 5 meses
Puntos: 6
Respuesta: Buscar inicio y fin palabra Regex

Hola pateketrueke.
Entiendo lo que me decis, pero no se si me sirve.
Tengo mas separadores, como las comas, puntos, corchetes, llaves y un monton de caracteres que no puedo asumir.
Necesitaria contar con el inicio y fin de una palabra, donde el inicio y fin sean caracteres de puntuacion, inicio o fin de linea. El resto de caracteres dentro, que me los tome en cuenta.

Gracias!
__________________
"Vivir....solo cuesta Vida"
  #4 (permalink)  
Antiguo 24/10/2012, 14:51
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 22 años, 5 meses
Puntos: 6
Respuesta: Buscar inicio y fin palabra Regex

Encontre una respuesa a lo que me estaba pasando.
Ejemplo:

Código:
('Este gendarme trabajador. ').match(/([!"#$%&'()*+,-.\/:;<=>?@[\]^_`{|}]|^|\s)(Gendarme|trabajador)([!"#$%&'()*+,-.\/:;<=>?@[\]^_`{|}]|$|\s)/gi)
El problema es que el resultado que me devuelve es solamente gendarme.
Si separo gendarme de trabajador, al menos con 2 espacios, me funciona.
Veo que tiene algo que ver con los extremos de cada palabra y de la cercania que tienen, pero no logro encontrar una solucion dentro de la regular expression
__________________
"Vivir....solo cuesta Vida"

Etiquetas: expression, match, regex, 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 09:03.