J'utilise une expression régulière pour valider un certain format dans une chaîne. Cette chaîne deviendra une règle pour un jeu.
Exemple: "DX 3" est correct selon la règle, mais "DX 14" pourrait être ok aussi ... Je sais comment regarder la chaîne et trouver un ou plusieurs "chiffres", donc le problème est que la regex Match 34 aussi, et ce nombre est sorti de "gamme" pour la règle ...
Est-ce que je manque quelque chose sur la regex pour faire cela? Ou n'est-ce pas possible du tout?
Malheureusement, il n'y a pas de moyen facile de définir les gammes dans Regex. Si vous souhaitez utiliser la plage 1-23, vous vous retrouverez avec une regex comme celle-ci:
([1-9]|1[0-9]|2[0-3])
Explication:
Ce n'est pas si court et pas flexible.
Si vous recherchez 1 à 19, vous pouvez rechercher "DX 1? [0-9]", par exemple, mais s'il ne se termine pas à une limite numérique, il obtient la vilaine jolie et la modification des règles n'est pas souple.
Sépartir la chaîne en blanc, puis utiliser X> 0 et X <24 est préférable à comprendre et plus flexible.
Vous pouvez utiliser le format suivant pour écrire une expression régulière résolvant votre problème. Supposons que votre gamme soit 0-15.
"^DX [0-9]|1[0-5]$"
Vous pouvez même le rendre dynamique en fonction de votre gamme en ajoutant des chaînes.