Trim 或替换 PowerShell 字符串变量
Trim or replace PowerShell string variable
我有一个包含以下信息的字符串变量
@{EmailAddress=test1@tenant.onmicrosoft.com},@{EmailAddress=test2@tenant.onmicrosoft.com}
我将此变量用于仅接受
格式数据的 cmdlet
test1@tenant.onmicrosoft.com, test2@tenant.onmicrosoft.com
我试过 TrimStart("@{EmailAddress=")
但这只会为第一个用户删除 @{EmailAddress=
我想 TrimEnd
不会有太大用处,因为我认为这是因为它将字符串作为一行读取,而不是作为 user1、user2 等读取。
谁能提供有关如何删除这些不需要的字符的建议。
一种可能的解决方案是使用 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
另一个解决方案是使用 -replace
函数。这只是一行:
'@{EmailAddress=test1@tenant.onmicrosoft.com},@{EmailAddress=test2@tenant.onmicrosoft.com}' -replace '@{EmailAddress=([^}]+)}.*?', ''
用于替换的正则表达式:
我有一个包含以下信息的字符串变量
@{EmailAddress=test1@tenant.onmicrosoft.com},@{EmailAddress=test2@tenant.onmicrosoft.com}
我将此变量用于仅接受
格式数据的 cmdlettest1@tenant.onmicrosoft.com, test2@tenant.onmicrosoft.com
我试过 TrimStart("@{EmailAddress=")
但这只会为第一个用户删除 @{EmailAddress=
我想 TrimEnd
不会有太大用处,因为我认为这是因为它将字符串作为一行读取,而不是作为 user1、user2 等读取。
谁能提供有关如何删除这些不需要的字符的建议。
一种可能的解决方案是使用 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
另一个解决方案是使用 -replace
函数。这只是一行:
'@{EmailAddress=test1@tenant.onmicrosoft.com},@{EmailAddress=test2@tenant.onmicrosoft.com}' -replace '@{EmailAddress=([^}]+)}.*?', ''
用于替换的正则表达式: