PowerShell: 正規表現による置換 Replace

PowerShellで正規表現を使って文字列を置換したい場合、 RegExクラスのReplaceメソッドを使用します。 RegExは.NET Frameworkのクラスであり、 Replaceメソッドはスタティックメソッドになります。

Replaceメソッド以外では-replace演算子を使って置換することも可能です。
(関連記事: 文字列を置換する Replace(), -replace演算子

Replaceメソッドの書式は次の通りです。

書式
[regex]::Replace(検索文字列, パターン文字列, 置換文字列 [,オプション])

検索文字列をパターン文字列で検索し、 マッチした文字列を置換文字列に置換します。 戻り値は置換後の文字列です。
RegExクラスは正式には「System.Text.RegularExpressions.RegEx」と記述します。 ですがエイリアスとして「regex」が定義されているので[regex]を使った方が シンプルに記述できます。

次のサンプルコードではパターン文字列「b.t」 に一致する文字列を「---」に置換します。

$s = "cut but cat bat bot"

# 置換
$m = [regex]::Replace($s, "b.t", "---")

$m

# 実行結果
cut --- cat --- ---

大文字小文字を区別

デフォルトでは大文字小文字は区別しません。 区別する場合は、 オプションに"IgnoreCase"を指定します。 IgnoreCaseは定数ではなく、 文字列として""で括って指定してください。

$s = "cut but cat bat BOT"

$m = [regex]::Replace($s, "b.t", "---", "IgnoreCase")

$m

# 実行結果
cut --- cat --- ---
PowerShell