Очистка вложенных операторов re.sub

Может кто-нибудь помочь мне очистить это вложенное регулярное выражение (re.sub) в python, пожалуйста? Я знаю, что должен быть лучший способ сделать это, но я не могу понять, как это сделать.

re.sub('.*Chairman.*','Executive Director',re.sub('.*Managing Director.*','Executive Director',row['capacity'])) 

У меня есть столбец строк (строка ['capacity']), который я вытащил из базы данных как часть набора, и я хочу перебирать его, заменяя любые строки, содержащие «председатель» или «управляющий директор», Исполнительный директор ", когда я пишу его на съемочную площадку.

вот полная строка кода:

 wrhkset = set (( row['organization'], row['lastname'], row['givenname'], re.sub('.*Chairman.*','Executive Director',re.sub('.*Managing Director.*','Executive Director',row['capacity'])) ) for row in wrhk) 

ПРИМЕЧАНИЕ: «wrhk» является кортежем списков. Я могу добавить больше кода, если это необходимо, но я действительно просто надеюсь на более упрощенный способ решения вложенных re.sub меня есть.

Заранее спасибо!

Вы можете использовать | присоединиться к двум регулярным выражениям с помощью «или»:

 re.sub(r'''(?x) .*( Chairman | Managing[]Director # or ).* ''','Executive Director', row['capacity']) 

Основываясь на ответе @ ubuntu, я использовал оператор OR и re.compile:

 patterns = re.compile('(.*Chairman.*)|(.*Managing Director.*)|(.*Chief Executive.*)|(.*CEO.*)') 

тогда:

 wrhkset = set (( row['organization'], row['lastname'], row['givenname'], patterns.sub('Executive Director',row['capacity']) ) for row in wrhk) 

Таким образом, я могу продолжать добавлять шаблоны, не превращая свою строку в нечитаемый беспорядок.

Благодаря!