IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Extraction d'un mot et d'un nombre dans [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Extraction d'un mot et d'un nombre dans
    Bonsoir,

    J'ai une chaîne de caractères composé d'un mot de longueur variable, puis d'un nombre. Voici quelques exemples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    coucou36
    toile24
    heure1
    Je souhaite récupérer séparément le mot et le nombre, est-ce possible ?

    Merci d'avance
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  2. #2
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    http://www.idecibel.com/modules/newb...1&post_id=6364

    par contre moi les expressions régulières... donc j'espère que tu maitrises ça
    Dia [ Page DVP ] [ Site pro ]

  3. #3
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Bon, j'ai fait comme cela, mais ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $texte='coucou35';
    	$masque='([\\D]+)([\\d]+)';
    	preg_match_all($masque, $texte, $resultats);
    	echo"<p> :"; 
    	print_r($resultats);
    	echo"<p>";
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  4. #4
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Attention tu utlises les expressions régulières perl ( bien ) mais celles-ci demandent un délimiteur en début et fin de masque.

    Essaie comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $masque='/([\\D]+)([\\d]+)/';
    Par contre je n'ai pas vérifié la regex, moi j'aurais plutôt fait comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $masque='/([^0-9]+)([0-9]+)/';
    ^0-9 selectionne tout ce qui n'est pas un nombre
    0-9 selectionne que les chiffres

    A tester bien etendu sur une selection de chaines.

    preg_match_all va récuperer toutes les possibilités dans ta chaine. Si le masque n'est succeptible d'être présent qu'une seule fois alors utilise plutôt preg_match

    Edit : on va oublier ma remarque sur la regex.
    J'ai toujours eu du mal avec la notation abrégé que je ne trouve pas clair
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Très simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("#([a-zA-Z]+)([0-9]+)#",$tachaine,$split);
    J'ai pas testé mais c'est censé renvoyer la chaine d'un coté et le nombre de l'autre. Par contre, c'est une regex que pour une ligne.

    Sinon la solution de facilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match_all("#([a-z]+)([0-9]+)#Usi",$tachaine,$split);

  7. #7
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Citation Envoyé par Kerod
    Très simple
    Sinon la solution de facilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match_all("#([a-z]+)([0-9]+)#Usi",$tachaine,$split);
    Ce code ne reverra que les caractères alphabétiques standard pour la première occurence

    Une question c'est quoi l'option U que tu utilise
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  8. #8
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Merci FCYPBA,

    J'ai testé les 2 solutions et en fait dans mon cas "preg_match" sera suffisant.

    Ton masque est aussi plus parlant pour moi.

    Merci encore.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  9. #9
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    En gros que les majuscules sont aussi acceptées

  10. #10
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Merci Kerod pour cette précision
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. extraction d'un mot d'une chaine
    Par manren dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 18/10/2010, 23h57
  2. Extraction de nombres dans un fichier txt
    Par Orel01 dans le forum MATLAB
    Réponses: 8
    Dernier message: 28/10/2009, 23h08
  3. Afficher des mots plutot que des nombres
    Par rolan dans le forum Access
    Réponses: 2
    Dernier message: 05/01/2007, 11h37
  4. Afficher des mots plutot que des nombres
    Par rolan dans le forum Access
    Réponses: 3
    Dernier message: 04/01/2007, 22h45
  5. ListBox - Extraction d'un mot
    Par Bouillon dans le forum Delphi
    Réponses: 2
    Dernier message: 30/09/2006, 23h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo