Je voudrais que mon regex affecte ces valeurs et seulement celles-ci: 1a, 1b, 2a, 2b, 3a, 3b, n. Il semble que mon regex ne fonctionne pas: "[([1-3] [a-b]) (n)]". Pourquoi ne voit-il pas le crochet contenant [1-3] [a-b] et comment cette expression devrait-elle fonctionner correctement?Affectation d'une regex incorrecte
Répondre
Je voudrais mon regex pour les affecter et seulement ces valeurs:
1a
,1b
,2a
,2b
, 3a,3b
,n
.
Cela signifie, vous devez utiliser
.matches("[1-3][ab]|n")
Voir la regex demo
Dans votre modèle, les crochets extérieurs ont créé une classe de caractères et les internes seulement ont été traités comme unions et "[([1-3][a-b])(n)]"
correspondait juste 1 caractère (un (
, ou 1
à 3
chiffre, ou a
à b
lettre, etc.
Heureux que cela a fonctionné pour vous. S'il vous plaît envisager d'accepter la réponse (voir [Comment accepter les réponses SO] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)). –
Les supports externes ont ruiné votre regex complètement. Essayez 's.matches (" [1-3] [ab] | n ")'. Voulez-vous dire que vous voulez faire correspondre une chaîne égale à «n» comme l'une des alternatives? Ou '2n',' 1n'? –
Juste n. Mais enlever les supports externes a aidé et maintenant cela fonctionne correctement! Merci beaucoup! :) – Virginia
Donc, vous voulez faire correspondre '1an'? '([1-3] [a-b]) (n)' correspondra '1an',' 3bn' ... Je veux dire, juste enlever les crochets extérieurs ne m'aidera pas. Voulez-vous dire mon regex ci-dessus travaillé? –