スポンサーリンク

【PowerShell】正規表現を使用して文字列を置換する方法

記事内に広告が含まれています。

PowerShellでは、文字列を置換するために-replace演算子を使用します。

通常の文字列置換だけでなく、正規表現を用いて柔軟にパターンを指定し、部分文字列を置換することができます。

スポンサーリンク

-replace演算子の基本

基本構文

$string -replace 'パターン', '置換後の文字列'
  • パターン
    置換対象の正規表現パターン
  • 置換後の文字列
    正規表現にマッチした部分を置き換えるための文字列
スポンサーリンク

正規表現での置換例

次に、正規表現を用いてどのように文字列を操作できるか具体例を見てみましょう。

例1: 数字を全てアスタリスクに置換

$string = "PowerShell version 7.1 is released in 2020."
$result = $string -replace '\d', '*'
$result

結果

PowerShell version *.* is released in ****.

\d は正規表現で数字を表します。

この例では文字列中のすべての数字を * に置換しています。

例2: メールアドレスの一部をマスクする

$email = "user@example.com"
$maskedEmail = $email -replace '(^\w)[^@]*', '$1*****'
$maskedEmail

結果

u*****@example.com
  • (^\w) はメールアドレスの最初の文字をキャプチャしています。
  • [^@]*@の前のすべての文字を表します。
  • $1 はキャプチャした最初の文字を再利用しています。

正規表現オプションを利用する

-replace 演算子は正規表現パターンに加え、オプションを設定することもできます。

例えば、大文字小文字を無視して置換を行いたい場合に、正規表現にオプションを指定します。

例3: 大文字小文字を無視して置換

$string = "PowerShell is Amazing."
$result = $string -replace '(?i)powershell', 'Script'
$result

結果

Script is Amazing.

(?i) は正規表現の中で大文字小文字を無視するオプションです。

これにより、powershellという単語が大文字小文字に関係なく置換されます。

マッチした文字列を動的に変換

正規表現の置換には、マッチした文字列を動的に変換するためのメソッドを利用することが可能です。

置換時にスクリプトブロックを使用することで、より柔軟な変換が可能になります。

おわりに

PowerShellの-replace演算子を使うと、正規表現を利用した柔軟な文字列操作が可能です。

スポンサーリンク
Windows
著者SNS
タイトルとURLをコピーしました