有人能帮我清理python中的嵌套regex(re.sub)吗?我知道一定有更好的方法来做这件事,但我不知道怎么做。

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

我有一列字符串(row['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语句。
提前谢谢!

最佳答案

您可以使用|将两个regex与“or”连接起来:

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

10-06 13:46