修剪或替换PowerShell字符串变量

时间:2017-04-24 09:46:34

标签: regex powershell sharepoint office365 trim

我有一个包含以下信息的字符串变量

  

@ {EmailAddress=test1@tenant.onmicrosoft.com},@ {EmailAddress=test2@tenant.onmicrosoft.com}

我将此变量用于仅接受格式为

的数据的cmdlet
  

test1@tenant.onmicrosoft.com,test2@tenant.onmicrosoft.com

我已经尝试了TrimStart("@{EmailAddress="),但这只删除了第一个用户的@{EmailAddress=,我猜TrimEnd没有太多用处,因为我认为这是因为它是因为它读取了string为一行而不是user1,user2等。

是否有人能够提供有关如何删除这些不需要的字符的建议。

2 个答案:

答案 0 :(得分:2)

一种可能的解决方案是使用Regex提取所需的字符串,并将它们组合成一个结果:

$str = "@{EmailAddress=test1@tenant.onmicrosoft.com},@{EmailAddress=test2@tenant.onmicrosoft.com}"
$pattern = [regex]'@{EmailAddress=(.+?)}'
$result = ($pattern.Matches($str) | % {$_.groups[1].value}) -join ','
然后

$结果是:

test1@tenant.onmicrosoft.com,test2@tenant.onmicrosoft.com

答案 1 :(得分:2)

另一种解决方案是使用-replace功能。这只是一个单行:

'@{EmailAddress=test1@tenant.onmicrosoft.com},@{EmailAddress=test2@tenant.onmicrosoft.com}' -replace '@{EmailAddress=([^}]+)}.*?', '$1'

正则表达式取代:

enter image description here