【巧用clickhouse 正则进行关键字提取 楼栋\单元\房屋】

利用ClickHouse 快速提取楼栋\单元\房屋信息


下面几个地址:
兴学街东社区测试小区1号楼1单元101室
兴东社区1-1-101
兴学测试1#1 101

如何快速匹配呢 可以通过先拆分字符串数组,然后取交集的方式实现:
一个sql 快速搞定:

SELECT
    extractAll('兴学街东社区测试小区1号楼1单元101室', '\\d+') AS residential_arr,
    '兴学街东社区测试小区1号楼1单元101室' AS residential_address,
    length(arrayIntersect(extractAll('兴学街东社区测试小区1号楼1单元101室', '[\\x{4e00}-\\x{9fa5}]'), extractAll('兴东社测试', '[\\x{4e00}-\\x{9fa5}]'))) AS interset



┌─residential_arr─┬─residential_address─────────────────┬─interset─┐
│ ['1','1','101'] │ 兴学街东社区测试小区1号楼1单元101室 │        5 │
└─────────────────┴─────────────────────────────────────┴──────────┘



SELECT
    residential_address,
    extractAll(residential_address, '.*龙凤苑\\D*12甲\\D*1\\D*101') AS address_list
FROM yisa_personnel.personnel_info_all
WHERE (extractAll(residential_address, '.*龙凤苑\\D*12甲\\D*1\\D*101')[1]) != ''

┌─residential_address──────────────────────┬─address_list───────────────────────────────┐
│ 龙凤苑社区西八路龙凤苑12甲号楼1单元101号 │ ['龙凤苑社区西八路龙凤苑12甲号楼1单元101'] │
└──────────────────────────────────────────┴────────────────────────────────────────────┘
┌─residential_address─┬─address_list───────────┐
│ 龙凤苑A区12甲1-101  │ ['龙凤苑A区12甲1-101'] │
└─────────────────────┴────────────────────────┘
┌─residential_address─────────────────────────────────────────────────┬─address_list──────────────────────────────────────────────────────────┐
│ 山东省淄博市张店区马尚街道龙凤苑社区龙凤苑A区12甲号楼号楼1单元101号 │ ['山东省淄博市张店区马尚街道龙凤苑社区龙凤苑A区12甲号楼号楼1单元101'] │
└─────────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────┘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值