我需要使用powershell创建一个日志文件。 它需要有患者的名字,姓氏和生日。 我目前正在尝试使用姓氏。
我有一个正则表达式可以正确输出患者的姓氏,但是在某些情况下,患者的姓氏中间带有短划线。 示例:乔纳斯·鲍尔-舍讷马尔
我当前的正则表达式仅匹配“鲍尔”,但假定匹配整个姓氏。这是我的问题。
下面是我当前的Regex行。 第一个匹配组是随机数字和“ 3101”字符串,这是此医疗文件中的姓氏前缀。
^(\d+3101)(\p{L}+)
这里是文件的摘录,我试图这样做(我将数字放在每行的开头,文件中的那些空格!):
1 01380006310
2 014810000722
3 01092063
4 014921802.10
5 0220102GE Healthcare
6 0190103CardioSoft
7 0140132V6.73
8 01630000085271
9 0253101Bauer-Schönemauer
10 0143102Jonas
11 017310321051937
第9行:姓氏
第10行:名字
第11行:生日(0173103 [21.05.1937])
有人可以帮我吗?
TL; DR:我需要使用正则表达式来使姓氏与中间的连字符匹配。
答案 0 :(得分:1)
您应该给我们一个字符类[]
:
^(\d+3101)([\p{L}-]+)
使用-match
并提取第二个子匹配项:
PS D:\> "0253101Bauer-Schönemauer" -match "^(\d+3101)([\p{L}-]+)"
True
PS D:\> $Matches[2]
Bauer-Schönemauer