我对RegEx的理解仍然存在问题。
我在Powershell中有一个文本框,它应该接收几个域的组。 像:
G-ITDep-Location-RWXD
G-R-ITHR-666-42-All-RWXD
G-R-ITHR-666-42-All-EndUsers
SP-P-TKDep-ISIS-Member
Domain Users
通过输入,我想通过Get-ADGroupMember获取每个组的组成员。但是,凭借我目前的正则表达式,我只能捕获每一行。 虽然这对我自己是好的,但我必须考虑我的大学和可能的错误。在上面的例子中,在另一行的开头和结尾有一个空行和一个“空格”。 那么如何过滤掉空行和前导/结尾空白字符?
这就是我所拥有的:
$Groups = [regex]::Matches($textboxUseradminInput.Text, '(?mi)^(.*)$')
foreach ($do in $Groups)
{
$richtextboxgetGroupsGrpMembers.Text += "$do" + ":`n"
$richtextboxgetGroupsGrpMembers.Text += Get-ADGroupMember -Identity "$do" -Server "192.168.3.99" |`
foreach { $_.Name } | Out-String
}
答案 0 :(得分:1)
如果要在正则表达式后清理它,可以使用where :: if子句过滤掉空行并使用String :: Trim()
去除空格。$inputText | % { if ($_) { $_.Trim() } } | Out-String
答案 1 :(得分:1)