JeuWeb - Crée ton jeu par navigateur
Regexp ruby ... - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Regexp ruby ... (/showthread.php?tid=416)

Pages : 1 2


Regexp ruby ... - Viciousity - 04-01-2011

Hello tout le monde,

Je poste ici parce que voila 2 heures que je me prend la tête sur une bête regexp pour valider quelque chose de cette forme :

Von-Dutch
Dark-Flo-Le-Noir

Mais qui ne valide pas :
VoN-DutCh (Majuscule autre part que la première lettre ou apres un tiret)
Dark-Flot-Le-Noir-(tiret succédé de rien du tout)
Dark-Flot-Le-N(seulement une majuscule et pas de minuscule apres un tiret)

En gros avoir une regexp qui n'accepte qu'une séquence de :
1. Premier caractère majuscule.
2. Autant de caractère minuscule après.
3. Si un tiret alors obligatoire une majuscule et une minuscule apres ...

Pour le moment j'ai sa mais sa ne suffit pas : /^(([A-Za-z]+([-]?))*)$/i car :
- N'oblige pas la majuscule au debut
- permet les tiret solitaires

Merci d'avance... :S


RE: Regexp ruby ... - Sephi-Chan - 04-01-2011

Tu auras bien du mal à valider la casse des caractères puisque tu mets le flag i, pour case insensitive ! Smile
Pour le tiret, à voir en rendant la séquence optionnelle, mais je ne me sens pas de le faire en coup de vent.



Sephi-Chan


RE: Regexp ruby ... - srm - 04-01-2011

Voilà : ^([A-Z][a-z]+\-?)+(?<!\-)$


RE: Regexp ruby ... - Viciousity - 04-01-2011

Pour le début nikel Ox mais la séquence pour la continuité avec le tiret ne marche pas :S

Les regexp c'est cool mai super mal doccumenté Sad
Checked Big Grin
^(([A-Z][a-z]+)||([-][A-Z][a-z]+)+)+$
Bon sa pue le trifouillage a la con mais elle marche Smile (soi dit je n'aime ap trop sa donc si vous trouvez mieux :S


RE: Regexp ruby ... - Sephi-Chan - 04-01-2011

L'avantage des Regexp, c'est que ce n'est pas lié à un langage. Smile
Je ne sais pas si tu utilises Rubular (http://rubular.com/), mais c'est cool ! Big Grin


Sephi-Chan


RE: Regexp ruby ... - Viciousity - 04-01-2011

Si si rubular is my friend pour les validations de mes modeles quand je dois utiliser cet affreux :format => {:with => /^(SATANLEDIABLE)$/}


RE: Regexp ruby ... - srm - 04-01-2011

Quel cas ne marche pas exactement avec ma Regex ?


RE: Regexp ruby ... - Viciousity - 04-01-2011

Il ne comprend pas la partie : (?<!\-) => undefined ? argument


RE: Regexp ruby ... - Hideaki - 04-01-2011

Je te propose :


^([A-Z][a-z]+([-][A-Z][a-z]+)+)$

Edit : je n'avais pas remarqué que le tiret est obligatoire Wink


RE: Regexp ruby ... - srm - 04-01-2011

Ah oui, Ruby ne connait pas les assertions arrière.
Voilà une variante avec des assertions avant : ^([A-Z][a-z]+(\-(?!$)|(?=$)))+$
Au passage moi j'utilise http://gskinner.com/RegExr/ pour les regex que je trouve mieux Tongue