Ta bort citattecken från en sträng

PowerShell:
Ta bort citattecken från en sträng

Hur:

Du kan använda -replace-operatorn för att ta bort citationstecken från en sträng. Så här gör du:

# Ersätt enkla citationstecken
$stringWithSingleQuotes = "'Hej, världen!'"
$cleanString = $stringWithSingleQuotes -replace "'", ""
Write-Output $cleanString  # Utmatning: Hej, världen!

# Ersätt dubbla citationstecken
$stringWithDoubleQuotes = '"Hej, världen!"'
$cleanString = $stringWithDoubleQuotes -replace '"', ""
Write-Output $cleanString  # Utmatning: Hej, världen!

För båda typerna:

$stringWithQuotes = '"Hejsan," sa hon.'
$cleanString = $stringWithQuotes -replace "[\"']", ""  # Observera användningen av regex teckenklass
Write-Output $cleanString  # Utmatning: Hejsan, sa hon.

Ett exempel på utmatning från konsolen kommer se ut något så här:

Hej, världen!
Hej, världen!
Hejsan, sa hon.

Djupdykning

Tillbaka i tiden, innan PowerShell var en glimt i Microsofts öga, var textbearbetning i Windows ofta domänen för batch-skript som hade begränsade möjligheter. PowerShell introduktion medförde kraftfulla strängmanipuleringsfunktioner som gjorde skriptning mycket robustare.

Det finns alternativ till -replace, som att använda .Trim()-metoden för att ta bort citationstecken enbart i början och slutet av en sträng, men de erbjuder inte samma kontroll eller regex-stöd.

# Använder .Trim() för citationstecken i början och slutet
$stringWithQuotes = '"Hej, världen!"'
$cleanString = $stringWithQuotes.Trim('"')
Write-Output $cleanString  # Utmatning: Hej, världen!

Notera, -replace använder regex bakom kulisserna, så när du arbetar med det, kom ihåg att speciella tecken behöver undantas om du riktar in dig på dem. Om du behöver mer granulär kontroll över borttagningen av citationstecken är det att dyka in i regex med -replace sättet att gå, vilket ger dig enorm flexibilitet.

Se också