Regex correspond à l'un des deux mots


301

J'ai une entrée qui ne peut avoir que 2 valeurs appleou banana. Quelle expression régulière puis-je utiliser pour m'assurer que l'un des deux mots a bien été soumis?


2
Dans quelle langue / environnement cette expression régulière est-elle mise en œuvre? Regex semble être une surcharge inutile dans de nombreuses situations.
mickmackusa

Réponses:


467

Cela fera:

/^(apple|banana)$/

à exclure des chaînes capturées (par exemple $1, $2):

(?:apple|banana)

43
Pour certains, l'utiliser comme un groupe non capturant sera utile. L'utilisation (?:apple|banna)correspondra non plus, mais ne les ajoutera pas à la liste des chaînes capturées (par exemple $1, $2.. $N).
doub1ejack

Salut question rapide, que dois-je faire si je ne veux pas que applebanana corresponde?
Grover Reyes

Le regex ci-dessus correspond à la pomme et à la banane, mais ne correspond pas à la pommebanana.
phlogratos

99

Il existe différents moteurs regex mais je pense que la plupart d'entre eux fonctionneront avec ceci:

apple|banana

55
Si vous prévoyez de mettre plus dans votre regex, vous aurez besoin de mettre entre parenthèses autour de vos mots, comme ceci: (apple|banana).
Brian J

mais comment le rendre insensible à la casse?
Nitish

C'est réglé avec le re.IGNORECASEdrapeau. Par exemple:re.compile("(apple|banana)", re.IGNORECASE)
Troels Ynddal

-8

Une expression régulière /.txt|.tif/peut être utilisée sur SiteScope pour localiser la «correspondance de nom de fichier» pour le moniteur d'annuaire lors de la recherche de deux types de fichiers différents - fichiers se terminant par .txt ou .tif

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.