Powershellと一致させたい-引用符で囲まれていないすべての$ testオカレンスを置き換えます(以下のサンプルの3、4、6、7行目)
1) '$test'
2) test
3) $test
4) foo $test bar
5) foo '$test' bar
6) foo "$test" foo
7) "$test"
以下の正規表現を使用しました
'[^\'']\$test[^\'']'
ただし、これはスペースにも一致します。たとえば、4行目では、置換によってそれらがトリミングされます。
一重引用符で囲まれていない場合、どうすれば$ testを正確に一致させることができますか?
以下の正規表現を使用して、行3,4、6、7の$ testに一致させることができます(つまり、$test
一重引用符で囲まれていません)
(?<!\')\$test(?!\')
説明:
(?<!\')\$test
負の先読み。これにより、$test
直後に存在する文字列が一重引用符と一致しないことが保証されます。(?!\')
そして、次の文字は一重引用符ではありません。正規表現エンジン$test
は、両方の条件が満たされた場合にのみ文字列に一致します。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加