PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

PowerShell et Split : découper une chaîne de caractères

lundi 24 mai 2021 à 13:00

I. Présentation

Dans ce tutoriel, je vais vous apprendre à utiliser la méthode Split() en PowerShell. Une méthode indispensable pour découper une chaîne de caractères.

La chaîne de caractères envoyée en entrée et découpée avec Split() permettra d'obtenir un tableau de chaînes de caractères : string[]. Le délimiteur utilisé par Split() peut être un caractère unique, une chaîne, mais aussi un pattern.

💡 Apprenez à utiliser la méthode Substring() de PowerShell

II. PowerShell - Split() : obtenir un tableau à partir d'une chaîne

A. Exemples basiques Split() PowerShell

Je vais rapidement vous faire comprendre l'intérêt de la méthode Split(). Déclarons une variable sous la forme d'une adresse e-mail :

$Email = "prenom.nom@it-connect.fr"

Maintenant, essayons d'obtenir l'identifiant de l'utilisateur d'une part (prenom.nom) et le domaine de l'autre (it-connect.fr). Ce qu'il y a entre deux, et c'est commun à toutes les adresses e-mails, c'est le "@" : ce sera le caractère que l'on va utiliser avec Split().

On va donc exécuter :

$Email.Split("@")

Mais l'on pourrait aussi utiliser l'écriture ci-dessous :

$Email -Split("@")

En retour, on obtient :

prenom.nom
it-connect.fr

En fait, la méthode Split() retourne un tableau de valeur. Du coup la valeur "prenom.nom" correspond à l'index [0] tandis que la valeur "it-connect.fr" correspond à l'index [1].

Exécutez les commandes ci-dessous, vous verrez par vous-même :

$EmailSplit = $Email -Split("@")
$EmailSplit.GetType()
$EmailSplit[0]
$EmailSplit[1]

En image directement :

PowerShell Split() - Exemple

Nous avons utilisé le caractère "@" comme séparateur, mais on aurait pu prendre un mot complet ou un autre caractère. Par exemple, on pourrait découper une adresse IP en se basant sur le point comme caractère pour spliter (diviser) notre chaîne :

$IPAddress = "192.168.1.1"
($IPAddress).split(".")

Il faut savoir que l'on peut récupérer facilement une valeur de notre tableau. Par exemple pour affecter la première valeur à une variable :

$IPPremierOctet = ($IPAddress).split(".")[0]

Cela fonctionne aussi très bien avec l'espace comme caractère de référence :

$Phrase = "Bienvenue sur le site IT-Connect !"
($Phrase).Split(" ")

B. Split() et Max-substrings

La méthode Split() supporte plusieurs paramètres, et pas seulement le délimiteur. On peut également lui indiquer le nombre de morceaux à retourner, c'est-à-dire le nombre de sous-chaînes à générer. Reprenons notre phrase précédente avec la variable $Phrase : on va la découper en deux seulement.

$Phrase = "Bienvenue sur le site IT-Connect !"
($Phrase).Split(" ",2)

La méthode va s'arrêter après le premier espace pour séparer en deux la chaîne. Ce qui va donner deux chaînes distinctes :

Bienvenue
sur le site IT-Connect !

On peut aussi écrire :

$Phrase -Split " ",2

C. Split() et ScriptBlock

La méthode Split() supporte également un bloc de script comme entrée pour séparer la chaîne. En fait, c'est particulièrement utile pour spécifier deux délimiteurs différents.

Prenons une URL comme valeur de référence :

$URL = "https://www.it-connect.fr"

Maintenant, on va séparer cette chaîne de caractères en prenant deux caractères : ":" ou ".", ce qui donne :

$URL -split { $_ -eq ":" -or $_ -eq "." }

Voilà, nous venons de voir comment utiliser la méthode Split() avec PowerShell, une manière simple, mais redoutable pour diviser une chaîne de caractères en plusieurs sous-chaînes.

The post PowerShell et Split : découper une chaîne de caractères first appeared on IT-Connect.