我正在尝试仅使用此输入匹配名称:
5 OK 377035 F 17949 , RICHARDS/PATRICIA MARIE A 15/01/19 2878-578482-3
6 OK 377599 F 13282 , ZARATE/NICOLAS A 38586778 15/01/19 2878-578486-0
7 OK 378583 F 23296 /*/*/*/, ASTAIRE/LUCY JANE A 17/01/19 3165-841179-4
这是到目前为止的代码:
import re, pyperclip, pprint
nombres = pyperclip.paste()
nombresReg = re.compile(r'\b\w+\b\s*/*,*\s*\b\w+\b\s?\b\w+\b')
mo = nombresReg.findall(nombres)
pprint.pprint(mo)
这是我得到的输出:
['5 OK 377035',
'RICHARDS/PATRICIA MARIE',
'01/19 2878',
'3\r\n 6 OK',
'377599 F 13282',
'ZARATE/NICOLAS A',
'01/19 2878',
'0\r\n 7 OK',
'378583 F 23296',
'ASTAIRE/ LUCY JANE',
'01/19 3165']
如您所见,它与名称匹配,但是它让我很讨厌...我已经尝试了好几天。
任何输入将不胜感激!
答案 0 :(得分:1)
,\s*(.*?)\s\w\s
的第1组将匹配唯一的逗号和一个字母后的所有内容,例如: RICHARDS / PATRICIA MARIE , ZARATE / NICOLAS 和< em> ASTAIRE / LUCY JANE 。
答案 1 :(得分:0)
此模式似乎正是您要寻找的:
>>> pat = re.compile("[A-Z]+/([A-Z ]+ )+")
>>> s = '''5 OK 377035 F 17949 , RICHARDS/PATRICIA MARIE A 15/01/19 2878-578482-3
... 6 OK 377599 F 13282 , ZARATE/NICOLAS A 38586778 15/01/19 2878-578486-0
... 7 OK 378583 F 23296 /*/*/*/, ASTAIRE/LUCY JANE A 17/01/19 3165-841179-4
... '''
>>> pat.findall(s)
['PATRICIA MARIE A ', 'NICOLAS A ', 'LUCY JANE A ']
>>>
说明:“ [[AZ] + /([AZ] +)+]”匹配一个或多个大写字母([A-Z]+
,后跟文字斜杠(/
),后跟一个序列一组或多组大写字母,必须用一个空格(([A-Z ]+ )+
)分隔。