Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1613 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [regexp] minuscules avec tirets

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[regexp] minuscules avec tirets

n°1579102
Big-Foot
Posté le 26-06-2007 à 02:47:34  profilanswer
 

Hello,

 

Je bloque sur une vérifiaction toute simple en regexp :
je voudrais savoir si un chaine n'est composée que de lettres simples minuscules et de tirets, mais je ne veux pas que cette chaine commence ni ne finisse par un tiret.

 

Pour le moment j'ai réussi à faire ça :

Code :
  1. ^[a-z]([-][a-z])*
 

Ca fonctionne presque mais ça laisse passer des strings avec des chiffres comme "bonjour22" et je ne comprend pas pourquoi.

Message cité 1 fois
Message édité par Big-Foot le 26-06-2007 à 02:50:40
mood
Publicité
Posté le 26-06-2007 à 02:47:34  profilanswer
 

n°1579103
IrmatDen
Posté le 26-06-2007 à 02:51:43  profilanswer
 

Salut,
 
Il faut que tu échappes ton '-', sinon, il est compté comme déclarant un intervalle (d'ailleurs, tu peux regrouper les 2 expressions entre crochets). Il faut aussi que tu ajoutes '$' à la fin de ta regex, sinon, tu laisses justement passer ton '22' après 'bonjour'.

n°1579104
Big-Foot
Posté le 26-06-2007 à 03:05:26  profilanswer
 

héhé.. une réponse en 10min à 3h du matin c'est vraiment pas mal.
 
J'ai ajouté le "$" et ça m'a l'air de jouer, ça donne :
 

Code :
  1. ^[a-z]([-a-z])*$


 
Merci à toi :)
 
Par contre je ne crois pas qu'il faille échapper le "-" :

Citation :

Pour permettre sa lecture en tant que caractère "tiret" il convient de le placer en début de la classe comme ceci [-....]


Source : http://www.expreg.com/symbole.php
 

n°1579133
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-06-2007 à 09:35:29  profilanswer
 

2 choses:

  • la regex ci dessus est pas bonne, elle tolère les tirets en fin de mots. ça se complique un peu si tu dois également accepter les mots de 1 lettre. Mais sinon rajoute juste un [a-z] avant le crochet.


  • le tiret peut(doit) être backslashé dans certains conditions, par exemple il faut différencier:


[a-z] # tous les caractères de a à z
[a\-z] # les caractères a, - et z

n°1579154
masklinn
í dag viðrar vel til loftárása
Posté le 26-06-2007 à 10:15:21  profilanswer
 

Big-Foot a écrit :

Hello,

 

Je bloque sur une vérifiaction toute simple en regexp :
je voudrais savoir si un chaine n'est composée que de lettres simples minuscules et de tirets, mais je ne veux pas que cette chaine commence ni ne finisse par un tiret.

 

Pour le moment j'ai réussi à faire ça :

Code :
  1. ^[a-z]([-][a-z])*
 

Ca fonctionne presque mais ça laisse passer des strings avec des chiffres comme "bonjour22" et je ne comprend pas pourquoi.


^[a-z]+(-[a-z]+)*$

Message cité 1 fois
Message édité par masklinn le 26-06-2007 à 10:15:51

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1579672
Big-Foot
Posté le 26-06-2007 à 23:28:06  profilanswer
 

masklinn a écrit :

^[a-z]+(-[a-z]+)*$



 
Ah ouais c'est mieux ça :)
En fait je dois aussi accepter les "_", alors ça donne cela si je ne me trompe :

^[a-z]+([-_][a-z]+)*$


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [regexp] minuscules avec tirets

 

Sujets relatifs
Aide pour une expression régulièreProblème de regexp en JS
Redirection url + regexp Javascript.[ASP.Net] .Net, Fichiers et RegExp
Remplacer minuscules en majuscules non accentuéstransformer des majuscules en minuscules
regexp différence entre (?:mot) et (mot)?[PERL] regexp avec caractres spéciaux
REGEXP : distinguer .1 de .10 
Plus de sujets relatifs à : [regexp] minuscules avec tirets


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR