3
以下のコードを使用してテキストドキュメントを解析すると、 '333'のすべてのインスタンスが一致しますが、以下の3つの例のみを変更します。PowerShells regexを使用して複数のバリアントを解析し置換する
(Get-Content input.json) | ForEach-Object {
$_ -replace '333', '666'
} | Set-Content output.json
これは変更する必要があります
- "se333" → "se666"
- "SE333" → "SE666"
- "333" → "666"
をこれは変更しないでください:
- "1212333"
- →変わらず "3331212"
- →変わらない
- "333asda" →変わらない "asd333" →変わらない
このためPowerShellの正規表現のソリューションとは何ですか?大文字小文字を区別しない修飾子
(?<=\b(?:se)?)
- -
'' "se333" 'と' "asd333" とは何が異なるのですか?ここのルールは何ですか?私は '(?<!\ P {L})333 \ b'が動作する(文字で始まるか、文字列の先頭にある' 333 'にマッチする)、単語境界に続いて ' asd333'。 –
"se333"はIDなので、 "se"はキーの一部です。asdは他の文字を表すはずです。良い質問! –
'se'は静かな部分であり、neveryが変わることを意味しますか?次に、 '(?i)(?<= \ bse | ^)333 \ b'または' '(?i)(?<= \ b(?:se)?)333 \ b'](http:// regexstorm.net/tester?p=%28%3fi%29%28%3f%3c%3d%5cb%28%3f%3ase%29%3f%29333%5cb&i=se333%0d%0aSE333%0d%0a333%0d %0aこの+は+ + +左+変化してはならない%0d%0a%0d%0a%221212333%22 + - %3e +変化なし%0d%0a%223331212%22+%3e +変化なし%0d%0a%22333asda%22 + - %3e +不変%0d%0a%22asd333%22 + - %3e +不変およびo = m)。または、2つのASCII文字が必要な場合は '(?i)(?<= \ b(?:[az] {2})?)333 \ b' –