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?

CyberJunkie
fuente
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)
flogratos
fuente
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
fumar
fuente
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

Diosa de Sitescope
fuente