作者:小小明

大家好,我是小小明,今天我要给大家分享一个我自己用VBA编写的神器,让你的Excel能够直接支持正则。

Pandas里支持正则替换比较舒服,但是Excel却没有一个可以支持正则的函数,但是借助VBA我们就可以在Excel实现正则的抽取、搜索和替换。

先看看效果吧:

正则抽取

对于一列数据:

中楼层(共9层)|2007年建|1室1厅|24.78平米|北
地下室|2014年建|1室0厅|39.52平米|东
底层(共2层)5室3厅|326.56平米|东南西北

我们想提取出其中的 层、楼层数、建筑年份、户型、大小和方向,我们可以选中一排的六个单元格,然后输入公式:

=re_extract(A1,"([^|(]+)(?:\(共(\d+)层\))?(?:\|(\d{4})年建\|)?(\d室\d厅)\|([\d.]+)平米\|([东南西北]+)")

然后按下Ctrl+shift+Enter(表示数组公式),即可得到如下结果:

中楼层	9	2007	1室1厅	24.78	北
地下室	0	2014	1室0厅	39.52	东
底层	2	0	5室3厅	326.56	东南西北

效果如下:

image-20201229211939998

?:表示当前括号内部是非捕获组。


本文转载:CSDN博客