La prise en charge des unités ne pose aucun problème, et termine le problème des chiffres romains :
>>> motif = '^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$' >>> re.search(motif, 'MDLV') <_sre.SRE_Match object at 0x008EEB48> >>> re.search(motif, 'MMDCLXVI') <_sre.SRE_Match object at 0x008EEB48> >>> re.search(motif, 'MMMMDCCCLXXXVIII') <_sre.SRE_Match object at 0x008EEB48> >>> re.search(motif, 'I') <_sre.SRE_Match object at 0x008EEB48>