2012-07-19 35 views
22

No estoy seguro de si esto es exactamente posible. Considere este ejemplo de conjunto de datos:Regex para que coincida con la frase exacta, nada antes o después de la frase

Mountain 
Big mountain 
Mountain of stone 
A mountain on a hill 

Quiero unir Mountain. Nada más. No hay otras partes de ese conjunto. Solo la línea exacta, Montaña. Todo lo que he probado coincide para todas las instancias de Mountain o para ninguna de ellas. Mucha gente quiere hacer coincidir una palabra o frase exacta, pero parezco ser el único que quiere hacer coincidir solo una palabra o frase exacta.

Si esto se puede ampliar a una frase que sería perfecta. Suponer:

Go for a hike 
Go for a hike, on a mountain. 
I want to go for a hike. 

Donde quiero hacer coincidir solo "Ir a caminar" pero no hay frase que lo contenga.

Respuesta

34

para que coincida con la línea exacta "montaña" utilizar este: /^Mountain$/

No ha mencionado el idioma que esté trabajando, por lo que la forma exacta del patrón que tenga que cambiar.

+11

El ''^significa: principio de la línea. El '$' significa: fin de línea. – jahroy

+5

@jahroy: en realidad, '^' significa el comienzo * de la entrada *, y '$' significa el final * de la entrada * (o justo antes de una nueva línea al final de la entrada). Solo cuando especifica el modo multilínea ('/^Montaña $/m', o' "(? M)^Montaña $" ') significa que comienzan y terminan * de la línea *. –

+0

Buen punto. Solo estaba tratando de explicar los símbolos al OP. En este caso, la entrada será una línea de texto (presumiblemente). – jahroy

2

Si usted tiene una cadena que contiene varias líneas, las siguientes dos expresiones regulares pueden ayudar:

\r\nWORD\r\n|^WORD\r\n|\r\WORD$|^WORD$ 

\r\nA\sPHRASE\r\n|^A\sPHRASE\r\n|\r\A\sPHRASE$|^A\sPHRASE$ 
+0

La persona de arriba tenía una expresión que funcionaba perfectamente para lo que necesitaba, pero gracias por la sugerencia. Trataré de encontrar frases si tengo problemas. – phobiac

Cuestiones relacionadas