Rimuovere le virgolette da una stringa

PowerShell:
Rimuovere le virgolette da una stringa

Come fare:

Puoi utilizzare l’operatore -replace per eliminare le virgolette da una stringa. Ecco come:

# Sostituisci le virgolette singole
$stringWithSingleQuotes = "'Ciao, Mondo!'"
$cleanString = $stringWithSingleQuotes -replace "'", ""
Write-Output $cleanString  # Output: Ciao, Mondo!

# Sostituisci le virgolette doppie
$stringWithDoubleQuotes = '"Ciao, Mondo!"'
$cleanString = $stringWithDoubleQuotes -replace '"', ""
Write-Output $cleanString  # Output: Ciao, Mondo!

Per entrambi i tipi:

$stringWithQuotes = '"Ciao," disse lei.'
$cleanString = $stringWithQuotes -replace "[\"']", ""  # Notare l'uso della classe di caratteri regex
Write-Output $cleanString  # Output: Ciao, disse lei.

L’output campione dalla console sarà qualcosa del genere:

Ciao, Mondo!
Ciao, Mondo!
Ciao, disse lei.

Approfondimento

Ai tempi, prima che PowerShell fosse un’idea nell’occhio di Microsoft, l’elaborazione del testo in Windows era spesso dominio degli script batch che avevano capacità limitate. L’introduzione di PowerShell ha portato con sé potenti funzionalità di manipolazione delle stringhe che hanno reso lo scripting molto più robusto.

Esistono alternative a -replace, come l’uso del metodo .Trim() per rimuovere le virgolette solo all’inizio e alla fine di una stringa, ma queste non offrono lo stesso controllo o supporto regex.

# Utilizzando .Trim() per le virgolette all'inizio e alla fine
$stringWithQuotes = '"Ciao, Mondo!"'
$cleanString = $stringWithQuotes.Trim('"')
Write-Output $cleanString  # Output: Ciao, Mondo!

Da notare, -replace utilizza regex dietro le quinte, quindi, quando lo usi, tieni presente che i caratteri speciali devono essere preceduti da un carattere di escape se li stai prendendo di mira. Se hai bisogno di un controllo più granulare sulla rimozione delle virgolette, immergersi in regex con -replace è la via da seguire, offrendoti una flessibilità immensa.

Vedi anche