[script] Extraire d'une chaîne les mots commençant par une majuscule

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par noisycity, 9 Octobre 2009.

Tags:
  1. noisycity
    noisycity WRInaute discret
    Inscrit:
    6 Janvier 2005
    Messages:
    66
    J'aime reçus:
    1
    Salut,

    Je cherche le moyen d'extraire d'une chaîne tous les mots commençant par une majuscule. :?:

    Exemple :
    $chaine = "UnscriptSuperCool";
    Ce que souhaites avoir : "Unscript Super Cool";

    Exemple 2 :
    $chaine = "BlablablablaBlaBlablaBla";
    Ce que souhaites avoir : "Blablablabla Bla Blabla Bla";

    Lorsqu'une lettre est en majuscule, cela correspond au début d'un mot jusqu'à la prochaine majuscule (non comprise).

    Merci pour votre aide,

    Stéphane.
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 890
    J'aime reçus:
    75
  3. noisycity
    noisycity WRInaute discret
    Inscrit:
    6 Janvier 2005
    Messages:
    66
    J'aime reçus:
    1
    Salut,

    Ton premier lien est une piste. Difficile à reproduire en Regex (la solution se trouve là), avec quelque chose comme ça :

    $chaine = "BlablaBlaBlablablablaBla";
    if (preg_match('~[[:upper:]]~', $chaine, $m)) {
    .....
    }
     
  4. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 890
    J'aime reçus:
    75
    Justement je ne serais pas parti sur une Regexp, mais sur la piste suivante, celle des codes ASCII des caractères.
     
  5. noisycity
    noisycity WRInaute discret
    Inscrit:
    6 Janvier 2005
    Messages:
    66
    J'aime reçus:
    1
    J'y suis presque :

    $chaine = "BlablaBloublaBla";

    if (preg_match('#[A-Z][a-z]*#', $chaine, $m)) {
    echo " ".$m[0];
    echo " ".$m[1];
    echo " ".$m[2];
    }

    Mais ça ne m'affiche que "Blabla", il me manque "Bloubla" et "Bla".

    echo " ".$m[1]; et echo " ".$m[2]; génèrent une erreur, c'est à dire que mon Regex ne fait ressortir qu'une seule occurence hors que je souhaites les obtenir toutes.
     
  6. noisycity
    noisycity WRInaute discret
    Inscrit:
    6 Janvier 2005
    Messages:
    66
    J'aime reçus:
    1
    C'est bon j'ai trouvé la solution :

    if (preg_match_all('#[A-Z][a-z]*#', $chaine, $m)) {
    ...
    }

    preg_match_all au lieu de preg_match forcément ...
     
Chargement...
Similar Threads - [script] Extraire chaîne Forum Date
[script] anti spam referrer Développement d'un site Web ou d'une appli mobile 20 Août 2015
[script] miniature et cache d'image à la volée Développement d'un site Web ou d'une appli mobile 13 Décembre 2013
[script] changer un texte en images Développement d'un site Web ou d'une appli mobile 10 Décembre 2013
[Script] Ajouter les boutons de partage des réseaux sociaux sans le tracking Développement d'un site Web ou d'une appli mobile 25 Août 2013
[Script] Clone légal? Développement d'un site Web ou d'une appli mobile 7 Avril 2013
[script] Comment charger un script différent suivant l'heure ? Help ! Développement d'un site Web ou d'une appli mobile 4 Octobre 2012
[script] Oméga-Annonces 1.5.1 - Php/MySqL Développement d'un site Web ou d'une appli mobile 4 Septembre 2012
[script] tracking formulaire d'affiliation Développement d'un site Web ou d'une appli mobile 5 Août 2012
[Script] - Interroger et manipuler Wordpress directement via un script PHP en crontab Développement d'un site Web ou d'une appli mobile 26 Avril 2012
[Script] Pour charger un fichier et le mettre sur son serveur Développement d'un site Web ou d'une appli mobile 6 Mars 2012