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 éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 067
    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

  2. #2
    Membre émérite
    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
    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 éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 067
    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>";

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    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

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931

  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
    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 émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    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

  8. #8
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 067
    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.

  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
    Par défaut
    En gros que les majuscules sont aussi acceptées

  10. #10
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 067
    Par défaut
    Merci Kerod pour cette précision

+ 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