PowerShellで文字列を正規表現で特定文字列を含む検索を行い置換する方法

powershell コンピュータ
powershell

特定の文字列を含むか検索する方法として、正規表現で指定する方法と*(アスタリスク)を使ったワイルドカードを指定する方法があります。正規表現は書式が難解ですが使えるようになるときめ細かな条件を1行で表現することが出来ます。ワイルドカードを使う方法はシンプルで理解しやすい点がメリットです。

文字列を検索し位置を取得

見つかった場合

PS C:\Users\karet> "ABCDEF".IndexOf("DEF")
3

見つからない場合-1が返る

PS C:\Users\karet> "ABCDEF".IndexOf("aaa")
-1

特定文字列が含むか判定(like)

文字列にCDが含まれるか判定

PS C:\Users\karet> "ABCDEF" -like "*CD*"
True

*…ワルドカード(文字列とマッチ)
?…ワルドカード(単文字とマッチ)

特定文字列が含むか判定(match)

文字列にCDが含まれるか判定

PS C:\Users\karet> "ABCDEFG" -match ".+CD.+"
True

条件は正規表現で指定

文字列の置換(relpace)

PS C:\Users\karet> "ABCDEF" -replace ".CD", "xcd"
AxcdEF

条件は正規表現で指定

コメント