Question
mise en forme d'une chaine de caractere
- darphboubou
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 135
- Remerciements reçus 0
il y a 9 ans 10 mois #17545
par darphboubou
mise en forme d'une chaine de caractere a été créé par darphboubou
Bonjour,
Je cherche une solution pour formater une chaine de caractere type numéro de téléphone
Exemple:
toto: 0123456789
doit etre réécrit de la manière suivante
toto: 01 23 45 67 89
J'ai entendu parlé d'expression régulière mais je dois dire que je ne vois pas bien comment l'appliquer.
Merci d'avance pour votre aide
Je cherche une solution pour formater une chaine de caractere type numéro de téléphone
Exemple:
toto: 0123456789
doit etre réécrit de la manière suivante
toto: 01 23 45 67 89
J'ai entendu parlé d'expression régulière mais je dois dire que je ne vois pas bien comment l'appliquer.
Merci d'avance pour votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 9 ans 10 mois #17546
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:mise en forme d'une chaine de caractere
Salut,
l'énoncé est simple, la solution déjà moins.
Une solution pour l'exemple donné ( PS v3):
[code:1]
$s='toto: 0123456789'
[system.Collections.arraylist]$t=([regex]'(.*:«»)\s+(\d{2})+').Matches($s).Groups.Captures.Value
$t.Removeat(0)
$ofs=' '
$s2=\"$t\"
$s2
#toto: 01 23 45 67 89
[/code:1]
La méthode Matches récupère tous les groupes (\d{2})
On peut aussi utiliser l'opérateur -Split en effectuant deux passes.
l'énoncé est simple, la solution déjà moins.
Une solution pour l'exemple donné ( PS v3):
[code:1]
$s='toto: 0123456789'
[system.Collections.arraylist]$t=([regex]'(.*:«»)\s+(\d{2})+').Matches($s).Groups.Captures.Value
$t.Removeat(0)
$ofs=' '
$s2=\"$t\"
$s2
#toto: 01 23 45 67 89
[/code:1]
La méthode Matches récupère tous les groupes (\d{2})
On peut aussi utiliser l'opérateur -Split en effectuant deux passes.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 9 ans 10 mois #17547
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:mise en forme d'une chaine de caractere
Une autre solution plus concise :
[code:1]
$s='toto: 0123456789'
#Visualise les modifications
#[Regex]::Replace($s, '(\d{2})', { param($chaine) \"$chaine-\"})
#Modifie uniquement les groupes de deux chiffre suivi d'un chiffre.
[Regex]::Replace($s, '(\d{2})(?=\d)', { param($chaine) \"$chaine \"})
#toto: 01 23 45 67 89
[/code:1]
[code:1]
$s='toto: 0123456789'
#Visualise les modifications
#[Regex]::Replace($s, '(\d{2})', { param($chaine) \"$chaine-\"})
#Modifie uniquement les groupes de deux chiffre suivi d'un chiffre.
[Regex]::Replace($s, '(\d{2})(?=\d)', { param($chaine) \"$chaine \"})
#toto: 01 23 45 67 89
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.062 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- mise en forme d'une chaine de caractere