Come estrarre una sottostringa PowerShell da una stringa

  1. Estrai una sottostringa PowerShell con il metodo Substring()
  2. Estrai una sottostringa PowerShell a sinistra di una stringa
  3. Estrai una sottostringa PowerShell prima e dopo un carattere specifico
  4. Estrai una sottostringa PowerShell tra due caratteri
Come estrarre una sottostringa PowerShell da una stringa

Questo articolo illustra come possiamo estrarre una sottostringa da una stringa in PowerShell. Una sottostringa è semplicemente una parte di una stringa.

Possiamo creare una sottostringa in PowerShell utilizzando i metodi Substring() e split(). Ad esempio, se abbiamo la stringa Delftstack.com, Delftstack è una sottostringa e com è un’altra.

Questo articolo discuterà il metodo Substring().

Estrai una sottostringa PowerShell con il metodo Substring()

Iniziamo guardando la sintassi del metodo Substring().

string.Substring(int startIndex, int length)

L’int nella sintassi segna il startIndex e la length come numeri di indice. Il startIndex indica il primo carattere della sottostringa che vogliamo estrarre, mentre length è il numero di caratteri che vogliamo estrarre da una stringa.

Usiamo il metodo IndexOf per determinare il startIndex e la length di una sottostringa.

Determiniamo il startIndex aggiungendo 1 al valore risultante di IndexOf della sottostringa. Diamo un’occhiata a un esempio.

Supponendo che ned.delftstack.com sia la nostra stringa, qual è la posizione dell’indice della prima lettera n nella nostra stringa? Possiamo determinare la posizione eseguendo il comando qui sotto:

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

Il risultato è 0. Questo perché il metodo IndexOf cerca la prima occorrenza di una stringa da sinistra a destra e inizia sempre da 0.

Pertanto, se desideriamo estrarre una sottostringa a partire dalla lettera n, il nostro startIndex sarà 0.

Possiamo anche usare LastIndexOf per trovare la posizione dell’ultima occorrenza di una stringa. Ad esempio, l’ultima occorrenza della lettera d sarebbe:

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

Queste informazioni di base ti permetteranno di manipolare le stringhe in PowerShell.

Estrai una sottostringa PowerShell a sinistra di una stringa

Mettiamo a frutto le informazioni sopra.

Supponiamo di voler estrarre la sottostringa ned da ned.delftstack.com. Come procederemmo?

Iniziamo salvando la nostra stringa in una variabile chiamata ourstrng.

$ourstrng = "ned.delftstack.com"

Dalla sintassi del metodo Substring(), il nostro comando sarà:

$ourstrng.Substring(0, 3)

Questo restituirà ned poiché il nostro startIndex è 0 e la length è di 3 caratteri. E se il nostro obiettivo è estrarre delftstack dalla nostra stringa?

Il primo passo è determinare il startIndex per la nostra sottostringa. In questo caso, useremo il primo punto, che è il separatore.

$ourstrng.IndexOf(".")

Il risultato sarà 3. Ma se ricordi, aggiungiamo 1 al risultato per il primo carattere della stringa; quindi, il nostro startIndex sarà 4.

La lunghezza sarà il numero di caratteri che vogliamo che la sottostringa abbia; conteremo a partire da 1. La sottostringa delftstack ha 10 caratteri.

$ourstrng.Substring(4, 10)

Questo restituirà delftstack.

Estrai una sottostringa PowerShell prima e dopo un carattere specifico

Supponiamo di voler estrarre sia ned che delftstack.com dalla nostra stringa. Come procederemmo?

Per prima cosa, dobbiamo determinare la posizione del nostro separatore, il primo .. Il comando qui sotto salverà il separatore in una variabile chiamata $sepchar.

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

Per estrarre le nostre sottostringe, eseguiremo il comando qui sotto:

$ourstrng.Substring(0, $sepchar)

Questo estrarrà la prima parte, che è ned. Per l’altra sottostringa, eseguiremo:

$ourstrng.Substring($sepchar + 1)

Questo restituirà deftstack.com.

Estrai una sottostringa PowerShell tra due caratteri

Se la nostra stringa è ned.delftstack.com, la nostra sottostringa sarà delftstack poiché si trova tra i nostri primi e secondi punti. Tale script richiederà tre comandi.

Il primo comando determinerà la posizione del nostro primo punto (.) e la salverà nella variabile firstsep.

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

Il secondo comando determinerà la seconda posizione del nostro punto usando il metodo LastIndexOf e la salverà nella variabile lastrep.

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

L’ultimo comando estrarrà la sottostringa delftstack dalla nostra stringa.

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

In conclusione, puoi estrarre una sottostringa in una stringa prima, dopo e tra i separatori di PowerShell. Il metodo Substring() è utile, come abbiamo visto sopra.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Autore: 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

Articolo correlato - PowerShell String