Isoler proprement un motif dans une String [Java] - Java - Programmation
Marsh Posté le 08-06-2004 à 10:46:41
pour le moment g ça
[A-Z]\w+.?\w*/(\w+/?\B)?
ca marche à peut près, si ce n'est que la string doit forcément se terminer par /, et je comprends pas pkoi à cause du ? qui dit qu'elle est optionelle normalement...
mais au moins elle rejette Nokia/s40/fff, et c ce que je voulais le plus...
Marsh Posté le 08-06-2004 à 10:50:25
Machin ::= Fabricant | Fabricant '/' Plateforme
Fabricant ::= CAPITALE Fabricant_suite
Fabricant_suite ::=
| Fabricant_suite
| CAPITALE
| MINUSCULE
| CHIFFRE
Plateforme ::= ...
un truc du genre quoi.
Marsh Posté le 08-06-2004 à 11:12:05
euh new StringTokenizer(s, "/", false) ?
suivi de validations "manuelles"?
Marsh Posté le 08-06-2004 à 11:18:01
the real moins moins a écrit : euh new StringTokenizer(s, "/", false) ? |
Avec la 1ère validation consistant à regarder si le nombre de tokens est supérieur à 2. Mais pour la deuxième (caractères alphanum seulement), soit tu te tapes une boucle sur les caractères de ta chaîne, soit tu fais une regexp.
Donc ça revient à peu près au même, avec la *légère* différence de savoir si le développeur maîtrise les regexp ou non
Marsh Posté le 08-06-2004 à 16:11:28
ben c bon en gros g une regexp qui me fournit ca (entre temps le cp a voulu que ca gère les révisions de plateformes)
Donc :
[A-Z]\w+.?\w*/\w+/(\d/\z)?
Qui match :
- Nokia/s40/
- Nokia/s40/1/
en fait g bcp progressé depuis que je fais plus confiance à Oro : pour une raison X, ce truc passe avec les regexp de java, pas celle d'Oro...
l'avantage de la regexp c qu'en une ligne c torché...si je dois me taper des boucles de char avec des ifs dans tt les sens, je v faire un code largement aussi porcin, et totalement aussi illisible
Marsh Posté le 08-06-2004 à 16:16:14
J'dirais quand même pas que c'est moins lisible avec une boucle. Le gars qui connaît Java, il sait "décypter" la boucle même s'il connaît pas les regexp. Par contre, les regexp, à lire... c'est long et chiant et faut un manuel à côté
Marsh Posté le 08-06-2004 à 16:16:18
t'as interet à écrire une belle batterie de tests pour prévenir tout dérapage de clavier le jour ou tu modifieras ton code..
Marsh Posté le 08-06-2004 à 22:05:55
j'écris tjs la regexp en clair dans un commentaire...
--> -- : note pour plus tard : apprendre à faire des tests unitaires (ca a l'air génial et je suis sur que je me ferais moins chier, mais g pas trop le temps en ce moment)
Marsh Posté le 08-06-2004 à 22:10:18
Jubijub a écrit : j'écris tjs la regexp en clair dans un commentaire... |
jusqu'a ce que tu oublies de la mettre à jour.
(demain maxi)
Marsh Posté le 08-06-2004 à 22:12:34
'tain, je vous propose une super définition sémantique et tout et vous faites de regexes à la con.
Marsh Posté le 08-06-2004 à 22:18:23
nraynaud a écrit : 'tain, je vous propose une super définition sémantique et tout et vous faites de regexes à la con. |
heho
pis ton truc c'est tout aussi imbitable
Marsh Posté le 08-06-2004 à 22:48:55
the real moins moins a écrit : |
et ta mère elle^W^W^Wnon rien.
Marsh Posté le 08-06-2004 à 23:12:34
nraynaud a écrit : 'tain, je vous propose une super définition sémantique et tout et vous faites de regexes à la con. |
bin elle est nickel c'est sur mais bon a mon avis il préfèrerait un bout de code tu vois
Marsh Posté le 08-06-2004 à 23:16:40
DarkLord a écrit : bin elle est nickel c'est sur mais bon a mon avis il préfèrerait un bout de code tu vois |
ça prend 15s à traduire en CPS ça /o\
Marsh Posté le 08-06-2004 à 10:11:44
en gros g une entrée utilisateur dont je dois vérifier la validité.
Elle doit etre de la forme :
Fabricant/Plateforme/
- Les / finaux sont optionnels (c facile de détecter si ils manquent et de les rajouter)
- la plateforme en elle même est facultative
- la fabricant comment forcément par une majuscule...
- pour la gag, le fabricant peut contenir des caractères non alphabétiques ( - par exemple, comme Sony-Ericsson)
Ex :
Nokia (valide)
Nokia/ (valide)
Nokia/s40/ (valide)
Nokia/s40 (valide)
Nokia/s40/6100 (non valide, il ne doit rien y avoir après la plateforme)
nokia (invalide, doit commencer par une majuscule)
Nokia\s40 (invalide, il faut des /)
G essayé avec des regexp, mais g tjs que des matches partiels, j'arrive jamais à avoir un match total...
Je vois pas comment faire...je fais mumuse avec l'applet de Jakarta ORO depuis tt à l'heure, mais imposible de trouver
---------------
Jubi Photos : Flickr - 500px