RegEx用于在PowerShell中查找类似的字符串

时间:2018-06-12 12:34:15

标签: regex powershell

我得到了一个包含用户列表的变量(作为字符串)。其中一些用户具有相似的名称。唯一不同的是它们以“$”符号结束。

示例:

FRANK
FRANK$

我想获得具有相似名称的所有这些用户的列表。所以如果我有这个清单:

MAX
FRANK
FRANK$
HARRY
HARRY$
JULIA
TOM

我只想在列表中获得FRANK,FRANK $,HARRY和HARRY $,然后检查AD用户的mail属性是否为空。

这是我到目前为止,但模式不合适:

$users = get-aduser -filter * | where givenname -ne $null | select -ExpandProperty name
select-string -InputObject $users -Pattern "[A-Z]+\$" 

2 个答案:

答案 0 :(得分:2)

以下是查找匹配用户的一种方法:

$users = Get-ADUser -Filter * | 
            Where-Object GivenName -ne $null |
                Group-Object @{e={$_.Name -replace '\$',''}} |
                    Where-Object Count -gt 1

您可以再次访问实际的用户对象:

$users.Group

答案 1 :(得分:1)

模式应为[A-Z]+[$]?,即文字$的零或一次出现。