以下是一个可以匹配中国地址信息的正则表达式:

^[一-龥]{2,4}(省|自治区|特别行政区|市)?([一-龥]{2,10}(市|自治州|地区|盟))?(?<district>[一-龥]{2,10}(区|县|市))?(?<community>[一-龥]{2,20}(街道|镇|乡))?(?<detail>[^�-ÿ]{0,50})?$

这个正则表达式可以匹配如下格式的地址信息:

广东省深圳市福田区莲花路123号
四川省成都市高新区天府大道中段
北京市朝阳区三里屯街道工体北路1号
河北省石家庄市长安区裕华路289号

正则表达式中的各个部分含义如下:

  • ^:匹配字符串的开头

  • [一-龥]{2,4}:匹配省份名称,中文字符2-4个

  • (省|自治区|特别行政区|市)?:省份名称后面可能跟着'省'、'自治区'、'特别行政区'、'市',也可能没有,用问号表示可选

  • ([一-龥]{2,10}(市|自治州|地区|盟))?:匹配地级市名称,中文字符2-10个,后面可能跟着'市'、'自治州'、'地区'、'盟',也可能没有,用问号表示可选

  • (?<district>[一-龥]{2,10}(区|县|市))?:匹配区县名称,中文字符2-10个,后面可能跟着'区'、'县'、'市',也可能没有,用问号表示可选,同时给这个匹配结果取了一个名字'district',方便后续使用

  • (?<community>[一-龥]{2,20}(街道|镇|乡))?:匹配街道/乡镇名称,中文字符2-20个,后面可能跟着'街道'、'镇'、'乡',也可能没有,用问号表示可选,同时给这个匹配结果取了一个名字'community',方便后续使用

  • (?<detail>[^�-ÿ]{0,50})?:匹配详细地址信息,最多50个非ASCII字符,用问号表示可选,同时给这个匹配结果取了一个名字'detail',方便后续使用

  • $:匹配字符串的结尾

注意,这个正则表达式只能匹配一部分地址信息,例如没有办公室、门牌号等详细信息,如果需要更加详细的匹配,可以根据实际情况进行修改。

应用场景:

  • 数据清洗: 从文本数据中提取地址信息,并进行分类和整理
  • 地址验证: 校验输入的地址信息是否符合规范
  • 地址自动补全: 根据用户输入的部分地址信息,自动补全完整的地址
  • 地理位置定位: 将地址信息转换为经纬度坐标,用于地图定位

原文地址: https://www.cveoy.top/t/topic/oLgs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录