簡體   English   中英

如何將這些字符串與正則表達式匹配?

[英]How to match this strings with regular expressions?

我試圖只匹配此輸入的名稱:

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']

如您所見,它與名稱匹配,但是讓我很討厭……我已經嘗試了好幾天。

任何輸入將不勝感激!

來自,\\s*(.*?)\\s\\w\\s將匹配唯一的逗號和單獨的字母后的所有內容,例如: RICHARDS / PATRICIA MARIEZARATE / NICOLASASTAIRE / LUCY JANE

這種模式似乎是您要尋找的:

>>> 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] +)+”)匹配一個或多個大寫字母( [AZ]+ ,后跟文字斜杠( / ),然后是一個或多個大寫字母組,必須用一個空格( ([AZ ]+ )+ )分隔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM