请问大佬们“另外列表中某一元素+其他一些字”的正则表达式该如何写?

我有一组数据比如

Out[159]: 
     id  id2    类别  Unnamed: 3                 名称
0  6622    3  地方企业         NaN       北京金软瑞彩科技有限公司
1  6622    4  地方企业         NaN         江苏省邮电规划设计院
2  6622    5  地方政府         NaN             江苏省科技厅
3  6622    6    学校         NaN         江苏省生产力培训学院
4  6622    8  地方企业         NaN       北京江天彩娱通讯有限公司
5  5543    1    学校         NaN             重庆交通学院
6  5543    3  地方企业         NaN         武汉长江轮船有限公司
7  5543    5  地方企业         NaN             武汉太和集团
8  5543    6  地方企业         NaN         杭州卓尚服饰有限公司
9  5708    1  研究机构         NaN  新疆维吾尔自治区特种设备检验研究院

然后我需要机构名称里面的地域“北京”,“江苏省”,‘新疆维吾尔自治区’给去掉。

然后我有一个列表包含了地域名字:

Out[160]: 
['湖南', '湖北','广东', '广西', '河南', '河北',  '山东',  '山西',  '江苏',  '浙江',  '江西',甘肃', '陕西', '内蒙古', '北京', '上海','天津']

因为机构名有的带“省”“市”“XX族自治区”这些的有的没带,我想写个正则表达式来找到这些。

我的想法是写一个类似这种的正则表达式是的可以找到“地区名字+省/市/x族自治区”这样的模式:

p2 = re.compile(r"(?=("+'|'.join(pro)+r")(.{0,5})(省|区$))")    

但是基本都不成功,本人新手实在苦恼请问大佬这个正则表达式该怎么写呢?万分感谢!!

pro = ['湖南', '湖北','广东', '广西', '河南', '河北',  '山东',  '山西',  '江苏',  '浙江',  '江西','甘肃', '陕西', '内蒙古', '北京', '上海','天津']

pattern =r"(?<=("+'|'.join(pro)+r").{0,5}?[省|区]).*"

#也就是 (?<=(湖南|湖北|广东|广西|河南|河北|山东|山西|江苏|浙江|江西|甘肃|陕西|内蒙古|北京|上海|天津).{0,5}?[省|区]).*