-
Regexp, motif erroné
Bonjour à tous.
Je sollicite votre aide afin de valider une regexp.
Je souhaiterai vérifier qu'une chaine entrée par l'utilisateur fait bien partie des chaines possibles.
Je m'explique :
Voici différents exemples des valeurs que peut prendre la chaine :
En italique se trouvent des valeurs qui varient régulièrement.
Il y a 16 sec vous avez tenté d'attaquer PSeudonumber45.
Il y a 31 sec vous avez volé 10972000 écu(s) à PseudoDuMan65.
Il y a 54 min, vous avez tenté d'attaquer GROSPSEUDO.
Il y a 1 h 14 min, vous avez volé 0 écu(s) à pseudo.
Il y a 1 h 49 min, vous avez volé 1000000 écu(s) à petitpseudo.
Il y a 12 h 49 min, vous avez volé 4000 écu(s) à lepseudo.
Voici un des nombreux motifs que j'ai essayé :
Code:
"#Il.y.a.[0-9]{1,2}.(h.)?[0-9]{0,2}.?(sec.|min,.).vous.avez.(tenté.|volé.)(([0-9] +.écu\(s\).à.)|(d'attaquer.))\w+..#"
Je dois donc faire une grossière erreur lors de la construction de mes motifs car ils ne sont jamais vérifiés...
Merci de me conseiller.
-
Moi je vois un espace qui me parait bizarre dans la regex mais avec ce genre de motif très long j'adopterai la méthode suivante:
tu cherche par exemple "#Il.y.a.[0-9]{1,2}#" pour commencer et si ca matche tu la rallonge un peu.
Voilou...
-
Effectivement, le découpage est surement la meilleure chose que j'ai à faire.
Pour l'espace il n'y est pas dans ma source ;-)
Merci pour ta suggestion, je me penche dessus et je vous tiens au courant.
-
Bon, j'ai trouvé, cela vient du fait que je prenais des tabulations pour des espaces... :/