文字列から引用符を削除する

PowerShell:
文字列から引用符を削除する

方法:

文字列からクォートを削除するために、-replace 演算子を使用できます。以下の方法で行います:

# 単一引用符を置換
$stringWithSingleQuotes = "'Hello, World!'"
$cleanString = $stringWithSingleQuotes -replace "'", ""
Write-Output $cleanString  # 出力:Hello, World!

# 二重引用符を置換
$stringWithDoubleQuotes = '"Hello, World!"'
$cleanString = $stringWithDoubleQuotes -replace '"', ""
Write-Output $cleanString  # 出力:Hello, World!

両方のタイプに対して:

$stringWithQuotes = '"Hi there," she said.'
$cleanString = $stringWithQuotes -replace "[\"']", ""  # 正規表現キャラクタークラスの使用に注目
Write-Output $cleanString  # 出力:Hi there, she said.

コンソールからのサンプル出力は以下のようになります:

Hello, World!
Hello, World!
Hi there, she said.

詳細情報

以前は、PowerShellがMicrosoftの計画の一部でさえなかった時代に、Windowsでのテキスト処理はしばしば機能に限りがあるバッチスクリプトの範疇でした。PowerShellの導入により、強力な文字列操作機能がもたらされ、スクリプト作成がはるかに堅牢なものとなりました。

-replace に代わる方法も存在しますが、例えば .Trim() メソッドを使用して文字列の開始と終了のクォートのみを削除することができますが、同じ制御や正規表現のサポートを提供するわけではありません。

# 開始と終了のクォートに対して .Trim() を使用
$stringWithQuotes = '"Hello, World!"'
$cleanString = $stringWithQuotes.Trim('"')
Write-Output $cleanString  # 出力:Hello, World!

注記:-replaceは裏で正規表現を使用しているので、それを扱う際には、対象とする特別な文字がある場合はエスケープする必要があることに注意してください。より詳細なクォートの削除制御が必要な場合、-replace を使って正規表現に深く潜ることで、大幅な柔軟性を得ることができます。

関連情報