我正在尝试比较来自两个SQL数据库(人事数据库和呼叫管理器数据库)的查询,以查找有员工离开公司的DN(个人扩展)。
问题是,人员数据库的名字在'Given Name'和'Nick Name'之间交替。我以为我可以在'姓名'上匹配数据库(因为这不会改变),然后使用正则表达式模式匹配第一个名字的前两个字符,以便它匹配大多数Given和Nick Names(例如约瑟夫和乔)。
我只是对实现正则表达式的位置感到困惑。下面是我通常使用嵌套循环的方法。
$match = @()
$nomatch = @()
foreach ($cucm in $cucmresults)
{
$foundMatch = $false
foreach ($coco in $cocoresults)
{
if (($cucm.LastName) -eq $coco.LastName)
{
if (($cucm.firstName -eq $coco.FirstName) -or
($cucm.firstName) -eq ($coco.Nickname))
{
$match += $cucm
$foundMatch = $true
break
}
}
}
if ($foundMatch -eq $false)
{
$nomatch += $cucm
}
}
Here is sample data:
$cucmresults:
Extension FirstName LastName
1000 Daniel Johnson
1001 Joe Smith
1002 Wing Lok Lu
$cocoresults:
Extension FirstName NickName LastName
1000 Daniel Dan Johnson
1001 Joe Joe Smith
1002 Wing Lok Wing Lok Lu
基本上,我希望100%匹配LastName,因为它始终是静态的。 FirstName在其全名和昵称之间交替显示。我想使用正则表达式 一旦LastName匹配,表达式匹配FirsName下Dan中的“Da”。