作者:小小明
大家好,我是小小明,今天我要给大家分享一个我自己用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 东南西北
效果如下:
?:
表示当前括号内部是非捕获组。