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

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.
 
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)) {
.....
}
 
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.
 
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 ...
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut