【发布时间】:2016-02-18 19:49:31
【问题描述】:
我在尝试匹配 AD 中的名字和姓氏的系统中有一些非常混乱的名字。只需要解析字符串。我有这样的名字:
- 哈格斯特罗姆,N.P.,安娜(分析)
- 巴纳斯,注册护士,辛西娅
- Saltzmann,N.P.,四月
- 李,克里斯托弗
- Rajaram,Pharm.D.,Sharmee
- 小古德,约翰(杰克)L
- 雷耶斯,注册护士,梅根
- Miller, M.S., Adrienne M
- 查韦斯,加布里埃拉
- 史蒂文斯,硕士,CCC-SLP,克里斯托弗
- 洛克伍德弗洛雷斯,注册护士,杰西卡
我已经尝试过了,但由于某种原因,GivenName 没有正确返回。
$Name = "Saltzmann, N.P., April"
$GivenName = $Name.Split(",")[$Name.Split(",").GetUpperBound(0)]
$SN = $Name.Split(",")[0]
If ($SN.IndexOf("-") -gt -1) {
$HypenLast = $SN.Split("-")[0]
$SNName = $SN.Split("-")[1]
}
If ($GivenName.IndexOf(" ") -gt -1) {
$GivenName = $GivenName.Replace("(","").Replace(")","").Split(" ")[0]
$MiddleName =$GivenName.Replace("(","").Replace(")","").Split(" ")[1]
}
尝试取第一个逗号之前的所有内容和最后一个逗号之后的所有内容,但在名字的第二个空格之前取字母。 尝试获取 LastName FirstName 但随后需要将其翻转为 FirstName LastName。谢谢。
【问题讨论】:
-
Stack Overflow 不是一个请求脚本的地方......它是一个提供关于您提供的编码和脚本的提示和建议的地方。你应该先尝试自己做。
-
不只是给你代码尝试以下。 1)在字符串对象上使用 .Split(',') 方法将字符串分解为数组。 2) 使用这些数组字符串并使用 .Trim() 方法删除垃圾空格 3) 使用 $var[index] 构建您需要的格式。
-
这是 RegEx 大展拳脚并嘲笑您的文本解析问题微不足道的地方。有用的链接:RegEx General Info 和 Popular RegEx Testing Site
标签: regex powershell