vocales regulares regular probar para palabra expresiones expresion exacta especiales espacio caracteres blanco alfanumerico regex expression word

regex - probar - expresiones regulares java



Expresión regular para unir una palabra completa (5)

Utilice este ejemplo en línea en vivo para probar su patrón:

Sobre la captura de pantalla tomada de este ejemplo en vivo: https://regex101.com/r/cU5lC2/1

Coincidencia de cualquier palabra completa en la línea de comando.

Utilizaré el shell interactivo phpsh en Ubuntu 12.10 para demostrar el motor de expresiones regulares PCRE a través del método conocido como preg_match

Inicie phpsh, ponga algo de contenido en una variable, haga coincidir palabra.

el@apollo:~/foo$ phpsh php> $content1 = ''badger'' php> $content2 = ''1234'' php> $content3 = ''$%^&'' php> echo preg_match(''(/w+)'', $content1); 1 php> echo preg_match(''(/w+)'', $content2); 1 php> echo preg_match(''(/w+)'', $content3); 0

El método preg_match utilizó el motor PCRE dentro del lenguaje PHP para analizar variables: $content1 , $content2 y $content3 con el patrón (/w)+ .

$ content1 y $ content2 contienen al menos una palabra, $ content3 no.

Coincide con palabras específicas en la línea de comandos sin bountarios de palabras

el@apollo:~/foo$ phpsh php> $gun1 = ''dart gun''; php> $gun2 = ''fart gun''; php> $gun3 = ''darty gun''; php> $gun4 = ''unicorn gun''; php> echo preg_match(''(dart|fart)'', $gun1); 1 php> echo preg_match(''(dart|fart)'', $gun2); 1 php> echo preg_match(''(dart|fart)'', $gun3); 1 php> echo preg_match(''(dart|fart)'', $gun4); 0

Las variables gun1 y gun2 contienen el dart o fart cuerda que es correcto, pero gun3 contiene darty y still matches, ese es el problema. Entonces en el siguiente ejemplo.

Combina palabras específicas en la línea de comandos con límites de palabras:

Los límites de palabras se pueden forzar con /b , ver:

Regex Visual Image adquirida de http://jex.im/regulex y https://github.com/JexCheng/regulex Ejemplo:

el@apollo:~/foo$ phpsh php> $gun1 = ''dart gun''; php> $gun2 = ''fart gun''; php> $gun3 = ''darty gun''; php> $gun4 = ''unicorn gun''; php> echo preg_match(''(/bdart/b|/bfart/b)'', $gun1); 1 php> echo preg_match(''(/bdart/b|/bfart/b)'', $gun2); 1 php> echo preg_match(''(/bdart/b|/bfart/b)'', $gun3); 0 php> echo preg_match(''(/bdart/b|/bfart/b)'', $gun4); 0

The /b afirma que tenemos un límite de palabras, asegurándonos de que "dart" coincida, pero "darty" no lo es.

Esta pregunta ya tiene una respuesta aquí:

Quiero hacer coincidir una expresión regular en una palabra completa.

En el siguiente ejemplo, intento hacer coincidir s o season pero lo que tengo coincide con s , e , a , o y n .

[s|season]

¿Cómo hago una expresión regular para que coincida con una palabra completa?


Los corchetes están destinados a la clase de caracteres, y en realidad intentas hacer coincidir cualquiera de: s , | , s (otra vez), e , a , s (otra vez), o y n .

Use paréntesis en su lugar para agrupar:

(s|season)

o grupo no capturante:

(?:s|season)

Nota: Los grupos que no son de captura le dicen al motor que no necesita almacenar la coincidencia, mientras que el otro (el grupo de captura lo hace). Para cosas pequeñas, ya sea que funcione, para cosas ''de servicio pesado'', es posible que desee ver primero si necesita el partido o no. Si no lo hace, mejor utilice el grupo sin captura para asignar más memoria para el cálculo en lugar de almacenar algo que nunca necesitará usar.


Para uso insensible a mayúsculas y minúsculas

([sS][eE][aA][sS][oO][nN])

Para búsqueda en minúsculas

([s][e][a][s][o][n])

Para mayúsculas y minúsculas

([S][E][A][S][O][N])


Pruebo ejemplos en js. La solución más simple: solo agrega la palabra que necesitas dentro de / /:

var reg = /cat/; reg.test(''some cat here'');//1 test true // result reg.test(''acatb'');//2 test true // result

Ahora si necesitas esta palabra específica con límites, no dentro de ninguna otra señal-letra. Usamos marcador b :

var reg = //bcat/b/ reg.test(''acatb'');//1 test false // result reg.test(''have cat here'');//2 test true // result

También tenemos el método exec () en js, que devuelve object-result. Ayuda fg para obtener información sobre el lugar / índice de nuestra palabra.

var matchResult = //bcat/b/.exec("good cat good"); console.log(matchResult.index); // 5

Si necesitamos obtener todas las palabras coincidentes en cadena / oración / texto, podemos usar g modificador (concordancia global):

"cat good cat good cat".match(//bcat/b/g).length // 3

Ahora el último, no necesito una palabra específica, sino algunas. Usamos | signo, significa elección / o.

"bad dog bad".match(//bcat|dog/b/g).length // 1


[ ] define una clase de personaje. Así que cada personaje que establezcas allí, coincidirá. [012] coincidirá con 0 o 1 o 2 y [0-2] comporta igual.

Lo que quiere es agrupaciones para definir una declaración o. Usa (s|season) para tu problema.

Por cierto. tienes que tener cuidado Los metacaracteres en expresiones regulares (o dentro de una agrupación) son diferentes de la clase de caracteres. Una clase de personaje es como un sub-lenguaje. [$A] solo coincidirá con $ o A , nada más. No escapando aquí por el dólar.