利用正则表达式精准提取地址信息,剔除省市县等行政区划信息
本文介绍如何使用正则表达式从地址字符串中提取省市县以外的详细地址信息。 现有正则表达式/.+?(省|市|自治区|自治州|县|区|)/g
只能提取省市县信息,无法提取街道、门牌号等更详细的地址信息。 目标是将省市县以外的地址信息作为一个整体提取。
例如,现有地址信息为['北京市','北京市','东城区']
,需要扩展到['北京市','北京市','东城区','xxx街道xxx号']
这种格式,并提取xxx街道xxx号
部分。
改进后的正则表达式如下:((.+?(省|市|自治区|自治州|县|区))+?|.+)
表达式分析:
((.+?(省|市|自治区|自治州|县|区))+?)
: 这部分匹配省市县等行政区划信息,并采用非贪婪匹配(+?
),尽可能少地匹配字符。 .+?
匹配一个或多个任意字符,(省|市|自治区|自治州|县|区)
匹配行政区划关键词。整个部分用括号()
括起,形成一个捕获组。|.+
: 这部分使用|
作为“或”运算符,匹配前面括号内的行政区划信息,或者匹配一个或多个任意字符(.+
)。 这确保了即使地址信息不包含省市县也能正确匹配。通过这个改进的正则表达式,可以有效地将省市县信息和其他地址信息分离提取,适应各种地址格式,即使地址信息不完整也能进行有效提取。