比较2个名字和姓氏数组

时间:2017-04-10 13:20:05

标签: regex powershell

我正在尝试比较来自两个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”。

0 个答案:

没有答案