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

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.
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.
LinkedInArticolo correlato - PowerShell String
- Array di stringhe in PowerShell
- Come controllare se un file contiene una stringa specifica utilizzando PowerShell
- Come controllare se una stringa non è NULL o VUOTA in PowerShell
- Come convertire un oggetto array in una stringa in PowerShell
- Come convertire una stringa sicura in testo normale in PowerShell