我有很多的文件名與模式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'獲取所有匹配對象以訪問任何匹配數據。 –