Attualmente sto programmando un algoritmo di vocabolario che controlla se un utente ha digitato correttamente la parola. Ho la seguente situazione: La soluzione corretta per la parola sarebbe "parte1, parte2". L'utente dovrebbe essere in grado di inserire "part1" (risposta 1), "parte2" (risposta 2) o "parte1, parte2" (risposta 3). io ora cerco di abbinare la stringa specificata dall'utente con il seguente, creato automaticamente, espressione regex:e/o operatore nell'espressione regolare
^(part1|part2)$
Questo solo restituisce Risposta 1 e 2 come corrette, mentre risposta 3 sarebbe sbagliato. Ora mi chiedo se c'è un operatore simile a | che dice "e/o" invece di "o ... o". Qualcuno può aiutarmi qui?
espressioni regolari potrebbe non essere la soluzione migliore per questo. Userei i normali metodi di stringa. –
Questo problema è scarsamente specificato. Perché stai usando la corrispondenza dei pattern quando tutto ciò di cui hai bisogno è un confronto di stringhe esatte contro un insieme di stringhe legali? A meno che il compilatore regex non ottimizzi le alternative in una struttura trie O (1) come fa Perl, probabilmente dovresti fare un test contro l'appartenenza all'hash invece. Altri motori regex non sono molto intelligenti in questo. – tchrist