Comment extraire une sous-chaîne PowerShell d'une chaîne

  1. Extraire une sous-chaîne PowerShell avec la méthode Substring()
  2. Extraire une sous-chaîne PowerShell à gauche d’une chaîne
  3. Extraire une sous-chaîne PowerShell avant et après un caractère spécifié
  4. Extraire une sous-chaîne PowerShell entre deux caractères
Comment extraire une sous-chaîne PowerShell d'une chaîne

Cet article illustre comment nous pouvons extraire une sous-chaîne à partir d’une chaîne dans PowerShell. Une sous-chaîne est simplement une partie d’une chaîne.

Nous pouvons créer une sous-chaîne dans PowerShell en utilisant les méthodes Substring() et split(). Par exemple, si nous avons la chaîne Delftstack.com, Delftstack est une sous-chaîne et com en est une autre.

Cet article discutera de la méthode Substring().

Extraire une sous-chaîne PowerShell avec la méthode Substring()

Commençons par examiner la syntaxe de la méthode Substring().

string.Substring(int startIndex, int length)

L’int dans la syntaxe marque le startIndex et length comme des numéros d’index. Le startIndex indique le premier caractère de la sous-chaîne que nous souhaitons extraire, tandis que length est le nombre de caractères que nous souhaitons extraire d’une chaîne.

Nous utilisons la méthode IndexOf pour déterminer le startIndex et le length d’une sous-chaîne.

Nous déterminons le startIndex en ajoutant 1 à la valeur résultante de l’IndexOf de la sous-chaîne. Regardons un exemple.

Supposons que ned.delftstack.com soit notre chaîne, quelle est la position de l’index de la première lettre n dans notre chaîne ? Nous pouvons déterminer la position en exécutant la commande ci-dessous :

"ned.delftstack.com".IndexOf('n')

Le résultat est 0. C’est parce que la méthode IndexOf recherche la première occurrence d’une chaîne de gauche à droite et commence toujours à partir de 0.

Ainsi, si nous souhaitons extraire une sous-chaîne commençant par la lettre n, notre startIndex sera 0.

Nous pouvons également utiliser LastIndexOf pour trouver l’emplacement de la dernière occurrence d’une chaîne. Par exemple, la dernière occurrence de la lettre d serait :

"ned.delftstack.com".LastIndexOf('d')

Cette information de base vous permettra de manipuler des chaînes dans PowerShell.

Extraire une sous-chaîne PowerShell à gauche d’une chaîne

Mettons les informations ci-dessus au travail.

Supposons que nous voulions extraire la sous-chaîne ned de ned.delftstack.com. Comment procéder ?

Nous commencerons par enregistrer notre chaîne dans une variable appelée ourstrng.

$ourstrng = "ned.delftstack.com"

D’après la syntaxe de la méthode Substring(), notre commande sera :

$ourstrng.Substring(0, 3)

Cela renverra ned puisque notre startIndex est 0 et length est de 3 caractères. Que faire si notre objectif est d’extraire delftstack de notre chaîne ?

La première étape consiste à déterminer le startIndex pour notre sous-chaîne. Dans ce cas, nous utiliserons le premier point, qui est le séparateur.

$ourstrng.IndexOf(".")

Le résultat sera 3. Mais si vous vous en souvenez, nous ajoutons 1 au résultat pour le premier caractère de la chaîne ; donc, notre startIndex sera 4.

La longueur sera le nombre de caractères que nous voulons que la sous-chaîne ait ; nous compterons à partir de 1. La sous-chaîne delftstack a 10 caractères.

$ourstrng.Substring(4, 10)

Cela renverra delftstack.

Extraire une sous-chaîne PowerShell avant et après un caractère spécifié

Disons que nous voulons extraire à la fois ned et delftstack.com de notre chaîne. Comment procéder ?

Tout d’abord, nous devons déterminer la position de notre séparateur, le premier .. La commande ci-dessous enregistrera le séparateur dans une variable appelée $sepchar.

$sepchar = $ourstrng.IndexOf(".")

Pour extraire nos sous-chaînes, nous exécuterons la commande ci-dessous :

$ourstrng.Substring(0, $sepchar)

Cela extraira la première partie, qui est ned. Pour l’autre sous-chaîne, nous exécuterons :

$ourstrng.Substring($sepchar + 1)

Cela renverra deftstack.com.

Extraire une sous-chaîne PowerShell entre deux caractères

Si notre chaîne est ned.delftstack.com, notre sous-chaîne sera delftstack puisqu’elle se trouve entre nos premier et deuxième points. Un tel script nécessitera trois commandes.

La première commande déterminera la position de notre premier point (.) et l’enregistrera dans la variable firstsep.

$firstsep = $ourstrng.IndexOf(".")

La deuxième commande déterminera la deuxième position de notre point en utilisant la méthode LastIndexOf et l’enregistrera dans la variable lastrep.

$lastrep = $ourstrng.LastIndexOf(".")

La dernière commande extraira la sous-chaîne delftstack de notre chaîne.

$ourstrng.Substring($firstsep + 1, $lastrep - 4)

En conclusion, vous pouvez extraire une sous-chaîne dans une chaîne avant, après et entre les séparateurs PowerShell. La méthode Substring() est pratique, comme nous l’avons vu ci-dessus.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Auteur: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Article connexe - PowerShell String