1. ホーム
  2. regex

[解決済み] Powershellで完全一致の文字列のみを置換する

2022-03-02 18:54:07

質問

replaceを使って正確に単語を置き換えたいのですが、なかなかわかりません。

$value1 = "I brought tea for my team"

$newValue = "coffee"
$token = "tea"

$value1 -replace $token, $newValue

実際の結果

コーヒー持参でcoffeem

期待される結果

チームのためにコーヒーを持ってきた

修正する。

$value1 = "I brought tea for my team"

$newValue = "coffee"
$token = "tea"

$value1 -replace "\b$token\b", $newValue

解決方法は?

Theoの言うとおりです。正規表現とWord Boundaryを使えばいいのです。 \b で検索語を囲み、単語全体にマッチするようにします。

$value1 = "I brought tea for my team"

$newValue = "coffee"
$token = "tea"

$value1 -replace "\b$token\b", $newValue