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

  FORUM HardWare.fr
  Programmation
  Divers

  Regex toujours...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Regex toujours...

n°798975
smilm
Posté le 18-07-2004 à 19:12:45  profilanswer
 

Salut!
 
J'aimerais un petit coup de main pour les regex, c'est vraiment quelque chose que je n'arrive pas à m'approprier.
 
J'aimerais une regex qui permet les caractères alphanumériques avec des espaces mais qui autorise également l'apostrophe.
 
Actuellement, je n'ai pas de gestion de l'apostrophe:
/^\w[\w\s]*\w$/ (PERL)
 
C'est pour du PHP, donc de la regex Perl ou de la regex PHP.
 
 
Merci d'avance.

mood
Publicité
Posté le 18-07-2004 à 19:12:45  profilanswer
 

n°799046
simogeo
j'ai jamais tué de chats, ...
Posté le 18-07-2004 à 21:56:42  profilanswer
 

([[:alnum:]][[:space:]]\')
 
?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°799117
smilm
Posté le 19-07-2004 à 00:50:00  profilanswer
 

Kikoo vous ! :hello:  
Je vais voir si ça marche.
 
Merci !:)
 

n°799118
smilm
Posté le 19-07-2004 à 00:58:17  profilanswer
 

Non apparament ca ne marche pas.
'zdazdza' ERREUR
blabla ' bla bla ERREUR
 
Apparament ca ne laisse pas passez grand chose en fait:
dzadazdaz ERREUR

n°799121
simogeo
j'ai jamais tué de chats, ...
Posté le 19-07-2004 à 01:19:50  profilanswer
 

c'est pourtant équivalent à  :
 

Code :
  1. ([a-zA-Z0-9]\s\')


ou ca :
 

Code :
  1. (\w\s\')


 
enfin je crois [:autobot]
 
c'estq quoi que tu veux faire exactement ?


Message édité par simogeo le 19-07-2004 à 01:20:09

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°799123
smilm
Posté le 19-07-2004 à 01:26:09  profilanswer
 

Une expression réguliere qui controle si la chaine est composé de caracteres alphanumériques avec éventuellement des espaces et des apostrophes.

n°799126
gm_superst​ar
Appelez-moi Super
Posté le 19-07-2004 à 01:32:39  profilanswer
 

/^[[:alnum:][:space:]']+$/


 
plutôt non ?


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°799131
smilm
Posté le 19-07-2004 à 01:38:56  profilanswer
 

gm_superstar a écrit :

/^[[:alnum:][:space:]']+$/


 
plutôt non ?


 
test:
 
blabla ERREUR
bla'bla ERREUR
bla bla ERREUR
bla' bla ERREUR
 
 :sweat:


Message édité par smilm le 19-07-2004 à 01:39:46
n°799133
gm_superst​ar
Appelez-moi Super
Posté le 19-07-2004 à 01:44:54  profilanswer
 
n°799138
smilm
Posté le 19-07-2004 à 02:14:55  profilanswer
 

ha...oups...

Code :
  1. $maregex="/^[[:alnum:][:space:]']+$/";
  2. if(!ereg($maregex,$nom) or strlen($nom)<4)
  3. {
  4.   $msg.="Le nom de votre alliance est incorrect. Utilisez uniquement des caractères alphanumériques avec éventuellement des espaces; 4 caractères minimum.<br>";
  5.   $error=1;
  6. }


 
Ya quelque chose qui va pas la dedans ?


Message édité par smilm le 19-07-2004 à 02:15:11
mood
Publicité
Posté le 19-07-2004 à 02:14:55  profilanswer
 

n°799139
smilm
Posté le 19-07-2004 à 02:30:22  profilanswer
 

Preg_match()...
Désolé.
 
Par contre ta solution ne marche pas avec un "Bla bla ' bla bla" par exemple.
 
 
Ca ne marche pas non plus avec les solutions de simogeo en utilisant le preg_match().


Message édité par smilm le 19-07-2004 à 02:32:51
n°799885
smilm
Posté le 19-07-2004 à 18:43:53  profilanswer
 

petit up  :bounce:

n°799955
gm_superst​ar
Appelez-moi Super
Posté le 19-07-2004 à 21:09:07  profilanswer
 

SmilM a écrit :

Preg_match()...
Désolé.


Ben oui [:spamafote]

SmilM a écrit :


Par contre ta solution ne marche pas avec un "Bla bla ' bla bla" par exemple.


Comment ça, "ça marche pas" ? avec "Bla bla ' bla bla" preg_match renvoie TRUE ce qui est bien le résultat attendu vu ce que tu attends de ta regex...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°799958
simogeo
j'ai jamais tué de chats, ...
Posté le 19-07-2004 à 21:09:42  profilanswer
 

gm_superstar > [:itm]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°802373
smilm
Posté le 21-07-2004 à 20:41:39  profilanswer
 

gm_superstar a écrit :

Ben oui [:spamafote]
 
Comment ça, "ça marche pas" ? avec "Bla bla ' bla bla" preg_match renvoie TRUE ce qui est bien le résultat attendu vu ce que tu attends de ta regex...


 
Oki I try again.

n°802383
smilm
Posté le 21-07-2004 à 20:48:24  profilanswer
 

Once again it doesn't work.

Code :
  1. $nom=$_POST['nom']; // Provient d'un formulaire, j'ai verifié, $nom passe bien, je peux l'afficher.
  2. [...]
  3. $maregex="/^[[:alnum:][:space:]']+$/";
  4. if(!preg_match($maregex,$nom) or strlen($nom)<4)
  5. {
  6. $msg.="Le nom de votre alliance est incorrect. Utilisez uniquement des caractères alphanumériques avec éventuellement des espaces; 4 caractères minimum.<br>";
  7. $error=1;
  8. }
  9. echo preg_match($maregex,$nom) ."-- $nom <br>";
  10. /*
  11. Avec Bla bla ' bla bla , s'affiche à l'écran le message d'erreur ci-dessus.
  12. L'echo ci dessus m'affiche exactement:
  13. 0-- Bla bla \' bla bla  
  14. */


Message édité par smilm le 21-07-2004 à 20:50:52
n°802396
smilm
Posté le 21-07-2004 à 21:01:31  profilanswer
 

Bon j'ai une fois de plus tester, en ligne cette fois.
 
http://smil.m.free.fr/divers/test.php
 
Le code de ce fichier:
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Document sans titre</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. </head>
  7. <body>
  8. <?
  9. if(isset($_POST['create']))
  10. {
  11. $error=0;
  12. $description=$_POST['description'];
  13. $nom=$_POST['nom'];
  14. $dicton=$_POST['dicton'];
  15. if($nom=='')
  16. {
  17.  $error=1;
  18.  $msg="Veuillez indiquer un nom pour votre alliance.";
  19. }
  20. if(strlen($nom)>30)
  21. {
  22.  $error=1;
  23.  $msg="Le nom de votre alliance est trop long (30 caractères maximum).<br>";
  24. }
  25. $maregex="/^[[:alnum:][:space:]']+$/";
  26. echo"$maregex <br>";
  27. if(!preg_match($maregex,$nom) or strlen($nom)<4)
  28. {
  29. $msg.="Le nom de votre alliance est incorrect. Utilisez uniquement des caractères alphanumériques avec éventuellement des espaces; 4 caractères minimum.<br>";
  30. $error=1;
  31. }
  32. echo preg_match($maregex,$nom)."-- $nom <br>";
  33. }
  34. ?>
  35. <form action="test.php" method="post" name="alli">
  36.   <table width="80%" border="0" align="center" cellpadding="4" cellspacing="0" class="tabin">
  37.     <tr class="cellulegris1">
  38.       <td width="20%"> <p>Nom de l'alliance</p></td>
  39.       <td width="80%"> <p>
  40.           <input name="nom" type="text" maxlength="30">
  41.         </p></td>
  42.     </tr>
  43.   </table>
  44.   <table width="80%" border="0" align="center" cellpadding="4" cellspacing="0" class="tabin">
  45.     <tr class="cellulegris2">
  46.       <td colspan="2" class="cellulebas"><div align="center">
  47.           <input type="submit" name="create" value="Créer" class="bouton">
  48.         </div></td>
  49.     </tr>
  50.   </table>
  51. </form>
  52. </body>
  53. </html>

n°802398
gm_superst​ar
Appelez-moi Super
Posté le 21-07-2004 à 21:01:59  profilanswer
 

Ben écoute...
 
http://djailles.free.fr/hfr/prog/pcre.php
 
Vérifie $nom contient bien ce que tu attends (vérifie que ' n'est pas échappé avec \' par exemple)


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°802408
smilm
Posté le 21-07-2004 à 21:07:34  profilanswer
 

A mon avis il est echappé en effet.
Quand j'écho mon bla bla ' bla devient bla bla \' bla

n°802418
gm_superst​ar
Appelez-moi Super
Posté le 21-07-2004 à 21:10:45  profilanswer
 
n°802420
smilm
Posté le 21-07-2004 à 21:11:38  profilanswer
 

je test  
if(!preg_match($maregex,stripslashes($nom)) or strlen($nom)<4)
 
....
 
Marche pas... :sweat:

n°802428
smilm
Posté le 21-07-2004 à 21:18:00  profilanswer
 

Je comprends rien...mais ca marche !
 
 $nom=stripslashes($nom);
 if(!preg_match($maregex,$nom) or strlen($nom)<4)
Ca marche.
 
 if(!preg_match($maregex,stripslashes($nom)) or strlen($nom)<4)
Ca marche pas.
 
Enfin bon,..ca marche !!
Merci beaucoup !!


Message édité par smilm le 21-07-2004 à 21:18:19
mood
Publicité
Posté le   profilanswer
 


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

  Regex toujours...

 

Sujets relatifs
perl + regex [resolu][Résolu] [Regex] reconnaitre une chaîne non complète - java
[python] Regex : substitution[MYSQL] Comment appliquer une regex sur un champ ?
[DELPHI] faire une regexParser un fichier... regex ?
fonction pour connexion serveur + regex[java] Regex : je ne m'en sors pas :(
RegEx. c'est quoi pour trouver l'inverse ?Regex = prise de tête ?
Plus de sujets relatifs à : Regex toujours...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)