我有很多的文件名与模式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。
前右找到逃跑期间字发布你正在使用的代码,所以我们可以帮助你:) –
我建议使用eg https://regex101.com/#python来开发正则表达式。它给你解释你的模式和目前匹配的视觉演示。 – jonrsharpe
真的,'[\ w- \ w]'?这个“范围”的目的是什么?试试['(\ w *)_([\ w-] +)\。\ w +'](https://regex101.com/r/4mEALO/1)。但是,我不确定输出应该是什么。如果你使用're.findall',它将只返回一个元组列表。使用're.finditer'获取所有匹配对象以访问任何匹配数据。 –