Regex coincide con una de dos palabras


301

Tengo una entrada que solo puede tener 2 valores appleo banana. ¿Qué expresión regular puedo usar para asegurarme de que se envió alguna de las dos palabras?


2
¿En qué idioma / entorno se implementa esta expresión regular? Regex parece una sobrecarga innecesaria en muchas situaciones.
mickmackusa 01 de

Respuestas:


467

Esto lo hara:

/^(apple|banana)$/

para excluir de cadenas capturadas (por ejemplo $1, $2):

(?:apple|banana)

43
Para algunos, usar esto como un grupo sin captura será útil. El uso (?:apple|banna)coincidirá, pero no los agregará a la lista de cadenas capturadas (por ejemplo $1, $2... $N).
duda1ejack

Hola pregunta rápida, ¿qué debo hacer si no quiero que applebanana coincida?
Grover Reyes

La expresión regular anterior coincide con manzana y plátano, pero no con applebanana.
flogratos

99

Hay diferentes motores regex, pero creo que la mayoría de ellos funcionarán con esto:

apple|banana

55
Si va a poner más en su expresión regular, tendrá que poner paréntesis alrededor de sus palabras, como esto: (apple|banana).
Brian J

pero ¿cómo hacer que no distinga entre mayúsculas y minúsculas?
Nitish

Eso se establece con la re.IGNORECASEbandera. Por ejemplo:re.compile("(apple|banana)", re.IGNORECASE)
Troels Ynddal

-8

La expresión regular /.txt|.tif/se puede usar en SiteScope para localizar 'Coincidencia de nombre de archivo' para el monitor de Directorio cuando se buscan dos archivos de tipos diferentes: archivos que terminan en .txt o .tif

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.