You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据长度与字符组成规则从字符串中提取邮政编码?

提取符合特定格式的邮政编码

可以直接用正则表达式解决这个问题,它能精准匹配任意位置的、符合指定格式的子字符串,完全避开split方法的局限性。

解决方案代码(Python)

import re

target_str = "85 ch. Osborne L'Ange-Gardien (Québec) J8L4C1 Canada"
# 匹配「字母-数字-字母-数字-字母-数字」的6位格式
pattern = r'[A-Za-z]\d[A-Za-z]\d[A-Za-z]\d'
result = re.search(pattern, target_str)

if result:
    print(result.group())  # 输出:J8L4C1
else:
    print("未找到符合格式的字符串")

说明

  • 正则表达式[A-Za-z]\d[A-Za-z]\d[A-Za-z]\d完全贴合你要求的规则:
    • [A-Za-z]匹配任意大小写字母
    • \d匹配0-9的数字
    • 按字母、数字交替的顺序重复三次,刚好组成6位长度的目标子串
  • 如果需要更严格匹配加拿大官方邮编规则(比如第一位字母不能是D、F、I、O、Q、U等),可以把正则调整为:
    r'[A-CEGHJ-NPR-TV-Z]\d[A-CEGHJ-NPR-TV-Z]\d[A-CEGHJ-NPR-TV-Z]\d'
    

内容的提问来源于stack exchange,提问作者user15887962

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:18:17