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

求助:编写Python正则表达式匹配指定格式的航班号与飞机注册号

解决带连字符的航班号/注册号正则匹配问题

你的正则表达式无法匹配的核心原因是量词{3, 5}中间多了空格——正则语法里,量词的逗号和后续数字之间不能存在空格。

正确的正则表达式

基础版本(仅匹配小写字母+数字):

^[a-z0-9]{2}-[a-z0-9]{3,5}$

支持大小写字母的版本:

^[a-zA-Z0-9]{2}-[a-zA-Z0-9]{3,5}$

也可以用正则标志简化大小写处理:

import re
pattern = re.compile(r'^[a-z0-9]{2}-[a-z0-9]{3,5}$', re.IGNORECASE)

Python 实际使用示例

import re

# 测试用例
test_codes = [
    'pk-bkf',
    'id-6236',
    'ew-43950',
    '8q-iak',
    'q2-274',
    'pk-gjr',
    'id-12345'
]

# 编译正则规则(忽略大小写)
pattern = re.compile(r'^[a-z0-9]{2}-[a-z0-9]{3,5}$', re.IGNORECASE)

# 批量匹配验证
for code in test_codes:
    if pattern.fullmatch(code):
        print(f"匹配成功:{code}")
    else:
        print(f"匹配失败:{code}")

关键说明

  • ^ 和 $ 用于限定匹配整个字符串,避免出现部分匹配(比如目标字符串前后有多余字符的情况)
  • - 可以直接写在正则里,不需要用[-]包裹(两种写法都合法,但直接写更简洁)
  • 量词{3,5}的逗号和数字之间必须无空格,这是你之前正则失效的核心原因

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:40:41