2017-04-24 10 views
1

は私が{[email protected]}、{@ [email protected] @以下の情報トリムやPowerShellの文字列を置換変数

を保持している文字列変数を持っています}私は

[email protected]の形式でデータを受け入れるコマンドレットは、この変数を使用しています

icrosoft.com、[email protected]

私はTrimStart("@{EmailAddress=")試してみましたが、これは最初のユーザーに対して@{EmailAddress=を削除し、私はそれが事実によるものであることを推測として、私は多くの使用ではないでしょうTrimEndを推測します文字列をuser1、user2などではなく1行として読み込みます。

これらの不要な文字を削除する方法については、誰でも助言できますか。

答えて

2

別の解決策は、になります-replace機能を使用してください。これは単なるワンライナーです:

'@{[email protected]},@{[email protected]}' -replace '@{EmailAddress=([^}]+)}.*?', '$1' 

正規表現を置き換えるために使用:

enter image description here

+0

ありがとうございましたダイアモンドは私に理解を助けました - 非常に高く評価しました –

+0

こんにちはマーティン、ゴールポストを少しここに移動するのは申し訳ありませんが、例えば "[email protected]"のように各ユーザーに二重引用符を追加するオプションがあります。 "[email protected]" - これは異なる応答が必要な全く異なる質問かもしれませんが、私が最初にここで質問すると思っています。ありがとう –

+1

もちろん、 '' $ 1''を '' "$" "' 'で置き換えてください。 –

2

可能な解決策は、あなたがしたい文字列を抽出し、その結果にそれらを結合するために正規表現を使用することです:

$str = "@{[email protected]},@{[email protected]}" 
$pattern = [regex]'@{EmailAddress=(.+?)}' 
$result = ($pattern.Matches($str) | % {$_.groups[1].value}) -join ',' 

$結果は次のようになります。

[email protected],[email protected] 
+0

が、これは良い解決策である、あなたにミッキーをありがとうございます。 –

関連する問題