|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : décembre 2006 Messages : 10 ![]() |
Bonjour,
C'est un de mes premiers posts, je n'ai pas trouvé d'endroit où me présenter, y a-t-il un endroit dédié ? Sinon : je suis étudiant en BTS Informatique de Gestion, j'ai une moto, j'habite dans une ville, je suis humain, et j'ai un petit "problème" sur un script et je suis mauvais en expressions régulières. ![]() J'aimerais transformer une chaine de caractère : "CacaBoudin" En une autre chaine de caractère : "caca_boudin" (vous noterez la finesse de mes exemples... )Je ne trouve pas la fonction qui permet de trouver à quel endroit (entier donc) se situent un certain caractère (les majuscules) (edit: strpos ?) Je ne trouve pas la fonction qui permet d'insérer un caractère à un endroit précis d'une chaine (un _ avant chaque majuscule qui ne débute pas la chaine). Enfin, je pense pouvoir utiliser la fonction strtolower... Auriez vous une idée de comment je pourrais faire ça ? Merci d'avance PS : j'ai utilisé la fonction recherche |
|
|
00
|
|
|
#2 | ||
![]() ![]() Marc ChappuisDéveloppeur Web Inscription : décembre 2003 Messages : 1 535 ![]() |
A tester car je suis pas une brute en regexp :-)
Code :
__________________
Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage ! |
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : décembre 2006 Messages : 10 ![]() |
Je vais tester ça, mais je ne suis pas sûr de bien comprendre le $1_$2$3, c'est automatique le fait qu'il comprenne que $1 c'est la première partie de l'expression régulière ?
Edit : alors : Code :
preg_replace("/^(.[^A-Z]*)([A-Z])([^A-Z]+)$/", "$1_$2$3", "CacaBoudin") "Caca_Boudin" C'est impec, donc la fonction que je recherchais c'est : Code :
strtolower(preg_replace("/^(.[^A-Z]*)([A-Z])([^A-Z]+)$/", "$1_$2$3", "$nom2")) Merci beaucoup, la solution est trouvée, je note le sujet comme résolu ! Merci Marcha pour le lien et la solution ![]() ![]() ![]()
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com