如何通过反向正则表达式匹配街道地址中方位词后的内容?
正则表达式解决方案:匹配方位词后的街道部分
核心思路
不用纠结反向否定断言,直接定位方位词(N/S这类单字母方位标识)的位置,提取其后内容即可。
可行正则表达式
方案1:捕获分组(推荐)
用带分组的正则直接提取目标内容:
\d+X+\s(\w.*)
- 匹配逻辑:
\d+X+:匹配开头的数字+X组合(如5XX、91XX)\s:匹配数字组合与方位词之间的空格(\w.*):捕获方位词(N/S)之后的所有内容,作为分组1提取
方案2:正向环视定位
如果不想用分组,可通过正向后顾断言定位方位词结尾,匹配后续内容:
(?<=\d+X+\s\w\s).*
- 匹配逻辑:
(?<=\d+X+\s\w\s):正向后顾断言,定位到「数字+X+空格+方位词+空格」的位置之后.*:匹配后续所有内容
测试结果
针对你的示例地址:
- 输入:
5XX N Clark St→ 提取结果:Clark St - 输入:
91XX S Dr Martin Luther King Jr Dr→ 提取结果:Dr Martin Luther King Jr Dr
内容的提问来源于stack exchange,提问作者Zaynaib Giwa
相关产品推荐
相关产品推荐

