Je programme actuellement un algorithme de vocabulaire qui vérifie si un utilisateur a correctement tapé le mot. J'ai la situation suivante: La solution correcte pour le mot serait "part1, part2". L'utilisateur doit être en mesure de saisir "partie 1" (réponse 1), "partie 2" (réponse 2) ou "partie 1, partie 2" (réponse 3). J'essaie maintenant de faire correspondre la chaîne donnée par l'utilisateur avec l'expression de regex suivante, créée automatiquement:
^(part1|part2)$
Cela ne renvoie que les réponses 1 et 2 comme correctes tandis que la réponse 3 serait erronée. Je me demande maintenant s'il existe un opérateur similaire à | qui dit and/or
au lieu de either...or
.
Quelqu'un peut-il m'aider à résoudre ce problème?
$or
match de mongodb regexRéponses:
Je vais supposer que vous voulez construire un regex dynamiquement pour contenir d'autres mots que part1 et part2, et que vous voulez que l'ordre n'ait pas d'importance. Si oui, vous pouvez utiliser quelque chose comme ceci:
Matchs positifs:
Correspondances négatives:
la source
est-ce que ça marche?
la source
Est-ce que cela fonctionne sans alternance?
ou pourquoi pas ça?
Le premier fonctionne pour toutes les conditions, le second pour tous, mais
part2
(en utilisant GNU sed 4.1.5)la source
Pas un expert en regex, mais vous pouvez le faire
^((part1|part2)|(part1, part2))$
. En mots: "partie 1 ou partie 2 ou les deux"la source
Ou vous pouvez utiliser ceci:
la source