Regex到python Regex

2024-05-23 14:03:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有很多文件名的模式是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

我以前的regex是([\w]*)_([\w-\w]+)\.\w+,但在切换到Python并获得第一个双筒姓氏(甚至是名字)之后,我无法运行它。你知道吗

使用旧正则表达式,我有两组:

  1. SMITH_James
  2. 001322Cde444-16v_HA

但是现在我不知道如何用re实现这一点,甚至不知道如何在组1中包含偶尔的双筒名称,在组2中包含ID。你知道吗


Tags: pdf文件名模式johnsmithhaaliciafirstnames
1条回答
网友
1楼 · 发布于 2024-05-23 14:03:06

([A-Z-]+)(?:_([A-z-]+))?_([A-z-]+)_(\d.*)\.

此模式将返回姓氏、可能的中间名、名字和最终字符串。你知道吗

  • ([A-Z-]+)返回一个大写单词,该单词也可以包含-
  • (?:_([A-z-]+))?返回前面有_的单词的0或1个匹配项。(?:使_无法捕获
  • ([A-z-]+)返回也可以包含-的单词
  • (\d.*)返回以数字开头的字符串
  • \.在文件类型之前找到转义的句点

相关问题 更多 >