我有很多带有SURENAME__notalwaysmiddlename_firstnames_1230123Abc123-16x_notalways.pdf
模式的文件名,例如:
SMITH_John_001322Cde444-16v_HA.pdf
FLORRICK-DOILE_Debora_Alicia_321333Gef213-16p.pdf
ROBINSON-SMITH_Maria-Louise_321333Gef213-16p_GH.pdf
我的旧正则表达式是([\w]*)_([\w-\w]+)\.\w+
但是在切换到Python并获得第一个双管姓氏后(甚至在名字中)我无法让它运行。
使用旧的正则表达式我有两组:
SMITH_James
001322Cde444-16v_HA
但现在我不知道如何使用re
来实现这一点,甚至包括组1中的偶然双管名称和组2中的ID。
答案 0 :(得分:1)
([A-Z-]+)(?:_([A-z-]+))?_([A-z-]+)_(\d.*)\.
此模式将返回姓氏,潜在的中间名,名字和最终字符串。
([A-Z-]+)
会返回一个包含-
(?:_([A-z-]+))?
会返回前面带有_
的字词的0或1个匹配项。 (?:
使_
非捕获([A-z-]+)
会返回一个也可以包含-
(\d.*)
返回以数字\.
在文件类型