如何在BigQuery中通过正则表达式从地址列提取区县信息
在BigQuery中使用正则表达式从地址列提取区县信息
需求场景
给定地址字符串:
Regency, Jl. Mawar No.1, Kenari, Kec. Percut Sei Tuan, Kabupaten Deli Serdang, Sumatera Utara 20671, Indonesia
需要提取目标结果:
Kabupaten Deli Serdang, Sumatera Utara
BigQuery实现方案
使用BigQuery内置的REGEXP_EXTRACT函数结合正则表达式完成提取,示例SQL如下:
SELECT REGEXP_EXTRACT( address_column, r'(Kabupaten [^,]+, Sumatera Utara)' ) AS district_province FROM your_target_table
正则表达式拆解
Kabupaten:精准匹配地址中代表"县"的固定前缀(注意后缀包含空格)[^,]+:匹配任意非逗号的字符序列,用于捕获县的具体名称(示例中为Deli Serdang), Sumatera Utara:精准匹配地址中代表"北苏门答腊省"的固定后缀,确保提取完整的区县+省份组合
适配扩展
如果地址数据包含其他行政区域前缀(比如Kec.代表区),可调整正则适配更多场景。例如同时匹配县和区级别的区域:
r'((Kabupaten|Kec\.) [^,]+, Sumatera Utara)'
内容的提问来源于stack exchange,提问作者Alea
相关产品推荐
相关产品推荐

