Expressions régulieres: Besoin d'un coup de main

Expressions régulieres: Besoin d'un coup de main - PHP - Programmation

Marsh Posté le 19-04-2004 à 19:18:52    

Salut
J'aimerais faire une expression réguliere qui permet:
D'etre obliger de commencer par une lettre
De n'utiliser que des lettres, des chiffres OU des espaces
De ne pas finir la chaine par un ou des espaces.
 
Pour l'instant j'ai fais ca:

Code :
  1. ^[a-zA-Z][ \][a-zA-Z0-9][^[ \$]{3,30}$


J'ai fais plein de test et ca marche pas.
Alors je me demande si je m'y prend mal avec les fonctions php
J'ai fais:

Code :
  1. $regex="^[a-zA-Z][ \][a-zA-Z0-9]{3,30}[^[ \$]$";
  2. if(!eregi($regex,$village))
  3. {


 
Voyez vous ou est le probleme ?
 
Merci d'avance.

Reply

Marsh Posté le 19-04-2004 à 19:18:52   

Reply

Marsh Posté le 19-04-2004 à 21:54:06    

http://www.expreg.com/ ;)


---------------
Hey! You wanna dance?
Reply

Marsh Posté le 19-04-2004 à 22:39:41    

Génial ce site  :love: ! Je l'ai bookmarké  :)

Reply

Marsh Posté le 19-04-2004 à 22:43:35    

au passage: trouvé en faisant http://www.google.fr/search?q=expr [...] %3Dlang_fr
 
 [:chamois]


---------------
Hey! You wanna dance?
Reply

Marsh Posté le 19-04-2004 à 22:52:09    

Une autre doc que j'ai utilisé pour faire ce que j'ai fais jusqu'a là :
http://www.phpinfo.net/articles/article_regex.html
 
Malgré ca, j'y arrive toujours pas. :sweat:

Reply

Marsh Posté le 20-04-2004 à 00:02:36    

jsais pas en php mais en perl (php et perl sont quand meme très proche au niveau de regexp), ya le \w qui vaut a-z A-Z 0-9 et les espaces


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 20-04-2004 à 14:41:44    

^([a-zA-Z0-9- ]{2,30})([^ ])$
Ca suffira
Merci pour http://www.expreg.com/ :bounce:


---------------
AfterEnd: Batissez un nouveau monde
Reply

Marsh Posté le 20-04-2004 à 15:05:56    

Ca marche po...
Le code:

Code :
  1. $maregex="^([a-zA-Z0-9- ]{2,30})([^ ])$";
  2. if(ereg($maregex,$village))
  3. {
  4. ..
  5. }


L'erreur renvoyé sur ma page:
 

Warning: REG_ERANGE:invalid character range in c:\michael\site web\_afterend\afterendv1.0\inscription.php on line 43


---------------
AfterEnd: Batissez un nouveau monde
Reply

Marsh Posté le 20-04-2004 à 15:27:49    

$maregex="^([a-zA-Z0-9- ]{2,30})([^ ])$";
 
Ca marcherait pas mieux avec :  
 
$maregex="^([a-zA-Z0-9]{2,30})([^ ])$";
 
ou mieux  
 
$maregex="^([:alnum:]{2,30})([^ ])$";

Reply

Marsh Posté le 20-04-2004 à 17:33:18    

gooopil a écrit :

$maregex="^([a-zA-Z0-9- ]{2,30})([^ ])$";
 
Ca marcherait pas mieux avec :  
 
$maregex="^([a-zA-Z0-9]{2,30})([^ ])$";
 
ou mieux  
 
$maregex="^([:alnum:]{2,30})([^ ])$";


Merci
Seulement je voudrais  autoriser les espaces..sauf a la fin.
La, tu n'autorises pas les espaces.
C'est pour ca que j'avais [a-zA-Z0-9- ].
 
Merci d'avance

Reply

Marsh Posté le 20-04-2004 à 17:33:18   

Reply

Marsh Posté le 20-04-2004 à 17:36:38    

Pourquoi se fatiguer avec ta regexp, balance un trim() sur ta chaîne avant?

Reply

Marsh Posté le 20-04-2004 à 19:00:19    

Freekill a écrit :

Pourquoi se fatiguer avec ta regexp, balance un trim() sur ta chaîne avant?


 
Ok..
Donc au début je trim et aprés je fais quoi comme regexp ?
 
EasyPHP aurait pas du mal avec elle des fois ? Je me demande parce que j'impression qu'une fois ca marche, une fois ca marche pas.
 
 
 
Je voudrais autoriser les espaces au milieu de la chaine.
Donc:
^([a-zA-Z0-9- ]{2,30})  
Mais ca déconne :(
Alors j'ai pensé a ca:
^([a-zA-Z0-9]| {2,30})  
mais ca autorise les caracteres spéciaux.
 :sweat:

Reply

Marsh Posté le 20-04-2004 à 19:18:09    

Code :
  1. ^([a-zA-Z][a-zA-Z\d\s]+?[^\s])$


 
debut / lettre / lettre, chiffre ou espace (un ou plusieurs) / pas d'espace / fin
 
?

Reply

Marsh Posté le 21-04-2004 à 00:01:44    

Freekill a écrit :

Code :
  1. ^([a-zA-Z][a-zA-Z\d\s]+?[^\s])$


 
debut / lettre / lettre, chiffre ou espace (un ou plusieurs) / pas d'espace / fin
 
?


\d et \s ...ok :)  
[:kintarox] Merci

Reply

Marsh Posté le 21-04-2004 à 13:43:17    

J'ai vraiment pas de chance... :sweat:  
 
avec ca:
^([a-zA-Z][a-zA-Z\d\s]+?[^\s])$
ca renvoi:

Citation :

Warning: REG_BADRPT: in c:\michael\site web\_afterend\afterendv1.0\inscription.php on line 46

Reply

Marsh Posté le 21-04-2004 à 13:51:42    

preg_match() (perl compatible)

Reply

Marsh Posté le 21-04-2004 à 15:47:53    

Merci Misieur

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed