PowerShell:
Merkkijonosta lainausmerkkien poistaminen
Kuinka:
Voit käyttää -replace
-operaattoria poistaaksesi lainausmerkit merkkijonosta. Näin se tapahtuu:
# Korvaa yksittäiset lainausmerkit
$stringWithSingleQuotes = "'Hello, World!'"
$cleanString = $stringWithSingleQuotes -replace "'", ""
Write-Output $cleanString # Tuloste: Hello, World!
# Korvaa kaksinkertaiset lainausmerkit
$stringWithDoubleQuotes = '"Hello, World!"'
$cleanString = $stringWithDoubleQuotes -replace '"', ""
Write-Output $cleanString # Tuloste: Hello, World!
Molemmille tyypeille:
$stringWithQuotes = '"Hi there," she said.'
$cleanString = $stringWithQuotes -replace "[\"']", "" # Huomaa regex-luokkamerkkien käyttö
Write-Output $cleanString # Tuloste: Hi there, she said.
Konsolin näyteulostus näyttää jotakuinkin tältä:
Hello, World!
Hello, World!
Hi there, she said.
Syväsukellus
Ennen PowerShellin aikaa, kun se oli vasta pilke Microsoftin silmäkulmassa, tekstinkäsittely Windowsissa oli usein erja-skriptien aluetta, joilla oli rajoitettuja ominaisuuksia. PowerShellin esittely toi mukanaan tehokkaita merkkijononkäsittelyominaisuuksia, jotka tekivät skriptauksesta paljon monipuolisempaa.
Vaihtoehtoja -replace
:lle on olemassa, kuten .Trim()
-metodin käyttäminen lainausmerkkien poistamiseen vain merkkijonon alusta ja lopusta, mutta ne eivät tarjoa samaa hallintaa tai regex-tukea.
# Käyttäen .Trim():ia lainausmerkkien poistoon alusta ja lopusta
$stringWithQuotes = '"Hello, World!"'
$cleanString = $stringWithQuotes.Trim('"')
Write-Output $cleanString # Tuloste: Hello, World!
Huomaa, että -replace
käyttää regexiä taustalla, joten kun työskentelet sen kanssa, pidä mielessä, että erikoismerkit on pakotettava, jos olet kohdentamassa niitä. Jos tarvitset tarkempaa hallintaa lainausmerkkien poistossa, syventyminen regexiin -replace
-avulla on tie eteenpäin, antaen sinulle valtavan joustavuuden.
Katso myös
- Lisätietoja regexistä PowerShellissä, tarkista viralliset dokumentit: about_Regular_Expressions
- Löydä muita merkkijonometodeja: Trim(), TrimStart(), TrimEnd()