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 --- ---