powershell 正規表現 最小マッチ(「.*」 を使ったときに)
.* を使うと任意の文字を0回以上繰り返す。置換などで正規表現を使う場合、思わぬところまでマッチしてしまうことがある。
最大マッチ、最小マッチの概念がある。
$str = "aaa-bbb-ccc.jpg" $str -replace "^.*-", "hoge-" # hoge-ccc.jpg(普通に.*を使うと最大マッチ:aaa-bbb-の部分にマッチ) $str -replace "^.*?-", "hoge-" # hoge-bbb-ccc.jpg(.*?を使うと最小マッチ:aaa-の部分にマッチ)
こんな感じで、最大マッチ、最小マッチで結果が異なる。