正则表达式匹配中国地址信息 - 完整解析及应用场景
以下是一个可以匹配中国地址信息的正则表达式:
^[一-龥]{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 著作权归作者所有。请勿转载和采集!