Regex corrisponde a una delle due parole


301

Ho un input che può avere solo 2 valori appleo banana. Quale espressione regolare posso usare per assicurarmi che una delle due parole sia stata inviata?


2
In quale lingua / ambiente viene implementata questa regex? Regex sembra sovraccarico inutile in molte situazioni.
Mickmackusa,

Risposte:


467

Questo farà:

/^(apple|banana)$/

per escludere dalle stringhe acquisite (ad es $1. $2):

(?:apple|banana)

43
Per alcuni, sarà utile utilizzarlo come gruppo non di acquisizione. L'uso (?:apple|banna)corrisponderà a entrambi, ma non li aggiungerà all'elenco delle stringhe acquisite (ad es . $1, $2.. $N).
doub1ejack,

Ciao domanda veloce, cosa devo fare se non voglio che la applebanana corrisponda?
Grover Reyes,

Il regex sopra corrisponde a mela e banana, ma non corrisponde a applebanana.
phlogratos

99

Esistono diversi motori regex ma penso che la maggior parte funzionerà con questo:

apple|banana

55
Se avete intenzione di mettere più nel vostro regex, avrete bisogno di mettere tra parentesi le tue parole, in questo modo: (apple|banana).
Brian J,

ma come renderlo maiuscole e minuscole?
Nitish,

Questo è impostato con la re.IGNORECASEbandiera. Ad esempio:re.compile("(apple|banana)", re.IGNORECASE)
Troels Ynddal

-8

L'espressione regolare /.txt|.tif/può essere utilizzata su SiteScope per individuare "Corrispondenza nome file" per il monitoraggio Directory quando si cercano due file di tipo diverso: file che terminano con .txt o .tif

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.