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 :

Séparer les chiffes d'une string [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut Séparer les chiffes d'une string
    Bonjour,

    Je cherche un moyen de séparer les chiffres d'une string. Elles peuvent être de longeur différente mais commencent toujours par des caractères alphabétique et finissent par des chiffres.

    J'ai fait quelques essaie mais sans résultats

    Par exemple:
    - "montext15" ==> retourne "montext" et "15"
    - "text7" ==> retourne "text" et "7"

    PS: la méthode d'extraction m'est complètement égale (tableau, deux variables, utilisation de deux fonction...)

    Est-ce que quelqu'un à une idée pour faire ça ?

    Merci d'avance,

    Alvaten

  2. #2
    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
    Voilà ce qu'il te faut : Comment insérer une chaîne de caractères dans une autre tous les x caractères ?

    Il y a tout dans la FAQ alors pourquoi ne pas s'en servir
    Bon ce n'est qu'un exemple mais un bon début. Il suffit de retire le {2} et au final d'avoir par exemple : ([a-zA-Z]+)([0-9]+), $1 . ' ' . $2

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    T'as essayé le transtypage php ? ca marche plutot bien ;o)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $str="toto654";
    $nb=$str+0;
    // ou : $nb = (int)$str;
     
    echo $nb;

  4. #4
    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
    Quoi qu'il en soit il pourra pas récupérer la chaîne avec ta méthode. Et puis il existe des fonctions comme intval, doubleval, floatval s'il faut faire ce genre de chose

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    ah oui pardon, j'avais pas vu qu'il voulait aussi le texte. En effet, le meilleur moyen reste une regexp ;o)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    preg_match('#^([^0-9]+)([0-9]+)$#', "truc987", $match);
    list(,$texte, $nombre)=$match;

  6. #6
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut
    Merci pour votre aide,

    Entre temps un colègue m'a proposé une autre solution.

    J'avais déja regarder la FAQ mais aucun des points décrit ne me paraissait utilie dans mon cas.
    Je n'avais pas pensser à modifer ma chaine, je devais être trop concentré sur une fonction de recherche.

    La solution que j'ai choisis juste pour info:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Sort les lettres
    preg_match_all('`(\D)+`',$ressourcesnuitsanschambre[$idx]['Nom'],$out); 
    echo $out[0][0]; 
     
    echo ' ';
     
    //Sort les chiffres
    preg_match_all('`(\d)+`',$ressourcesnuitsanschambre[$idx]['Nom'],$out);
    echo $out[0][0]; 			echo $out[0][0]+1;

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 17/10/2006, 13h06
  2. [VBA-E] Séparer les colonnes d'une listbox par des lignes?
    Par mulot03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2006, 15h03
  3. Séparer les nombres d'une chaine avec split
    Par guano dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2006, 18h14
  4. [C#] Comment extraire les parties d'une string ?
    Par mrpowerboy dans le forum C#
    Réponses: 3
    Dernier message: 21/02/2006, 10h10
  5. Réponses: 4
    Dernier message: 10/02/2005, 17h10

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