淘宝 快递公司单号正则

codenamereg_mail_no
LTS联昊通^[0-9]{9,12}$
QFKD全峰快递^[0-9]{12}$|^[0-9]{15}$
SCKJ四川快捷^[0-9]{13}$
UAPEX全一快递^\d{12}$
BJCS城市100^(CS[0-9]{13})$|^([0-9]{13})$
EMSEMS^[A-Z]{2}[0-9]{9}[A-Z]{2}$
YTO圆通速递^(0|1|2|3|5|6|7|8|E|D|F|G|V|W|e|d|f|g|v|w)[0-9]{9}$
ZTO中通速递^((618|680|688|618|828|988|118|888|571|518|010|628|205|880|717|718|728|738|761|762|763|701|757)[0-9]{9})$|^((2008|2010|8050|7518)[0-9]{8})$
HZABC杭州爱彼西^[0-9]{10,11}$
ZJS宅急送^[a-zA-Z0-9]{10}$
YUNDA韵达快运^[\s]*[0-9]{13}[\s]*$
TTKDEX海航天天快递^[0-9]{14}$
BEST百世物流^[0-9]{10}$
FEDEX联邦快递^[0-9]{12}$
DBL德邦物流^[0-9]?[0-9]{7}$
SHQ华强物流^[A-Za-z0-9]*[0|2|4|6|8]$
WLB-STARS星辰急便^TB[0-9]{12}$
HTKY汇通快运^(A|B|C|D|E|H|0)(D|X|[0-9])(A|[0-9])[0-9]{10}$|^(21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39)[0-9]{10}$
CRE中铁快运^K[0-9]{13}$
WLB-ABC浙江ABC^TB[0-9]{12}$
SF顺丰速运^[0-9]{12}$
CCESCCES^(2|3|5|6|8|5|1)[0-9]{9}$
STO申通E物流^(268|888|588|688|368|468|568|668|768|868|968)[0-9]{9}$|^(268|888|588|688|368|468|568|668|768|868|968)[0-9]{10}$|^(STO)[0-9]{10}$
ZY中远^CO[A-Z]{2}[0-9]{10}$
LB龙邦速递^[0-9]{12}$
FAST快捷速递^[0-9]{11,13}$
DFH东方汇^[0-9]{10}$
SY首业^29[0-9]{8}$
YC远长^96[0-9]{12}$
YCT黑猫宅急便^[0-9]{12}$
XB新邦物流[0-9]{8}
NEDA港中能达^((88|)[0-9]{10})$|^((1|2|3|5|)[0-9]{9})$|^((9|)[0-9]{11})$
UC优速物流^VIP[0-9]{9}|V[0-9]{11}|[0-9]{12}$
QRT全日通快递^[0-9]{12}$
### 快递单号正则表达式匹配格式 为了匹配不同快递公司快递单号,可以通过定义特定的正则表达式来完成这一任务。以下是针对常见快递公司(如顺丰、圆通等)的正则表达式设计方法。 #### 1. 基本结构 正则表达式通常由以下几个部分组成: - `^` 表示字符串的起始位置。 - `\d` 表示一位数字。 - `{n,m}` 定义重复次数范围,其中 n 是最小值,m 是最大值。 - `$` 表示字符串的结束位置。 对于快递单号而言,其前缀通常是固定的字母组合,而后续则是若干位数字。因此,可以按照以下模板构建正则表达式: ```java String regex = "^(PREFIX)(\\d{LENGTH})$"; ``` 此处 `(PREFIX)` 替换为具体的快递公司前缀,`(\\d{LENGTH})` 则表示连续的数字长度[^1]。 --- #### 2. 不同快递公司正则表达式实例 ##### (1)顺丰 (SF) 顺丰快递单号一般以 `SF` 或其他变体开头,后面跟随一串固定数量的数字。例如: - 单号样例:`SF1234567890` - 正则表达式:`^SF\\d{12}$`[^1] 此表达式解释如下: - `^SF` 确保字符串以 SF 开头; - `\\d{12}` 要求紧接着有 12 位数字; - `$` 确保整个字符串在此处结束。 ##### (2)圆通 (YTO) 圆通快递单号通常以 `YTO` 开头,随后是一组指定长度的数字。例如: - 单号样例:`YTO123456789012` - 正则表达式:`^YTO\\d{12}$` 同样地: - `^YTO` 确认字符串以 YTO 开头; - `\\d{12}` 验证接下来是否有 12 位数字; - `$` 结束验证。 ##### (3)通用快递单号匹配 如果希望支持多种快递公司,则可以在正则表达式的括号中加入多个可能的前缀,并用竖线分隔它们。例如: ```java String regex = "^(SF|SFL|YZ|YTO)\\d{10,12}$"; ``` 该表达式能够匹配以 `SF`, `SFL`, `YZ`, 和 `YTO` 中任意一种作为前缀,且后接 10 至 12 位数字的字符串[^1]。 --- #### 3. 测试正则表达式的方法 在实际应用中,可通过编程语言内置的支持库测试这些正则表达式是否有效。下面分别展示 Java 和 Python 的实现方式。 ##### (1)Java 实现 ```java public class TestRegex { public static void main(String[] args) { String regex = "^(SF|SFL|YZ|YTO)\\d{10,12}$"; // 定义正则表达式 System.out.println("SF1234567890".matches(regex)); // true System.out.println("YTO123456789012".matches(regex)); // true System.out.println("INVALIDCODE".matches(regex)); // false } } ``` ##### (2)Python 实现 ```python import re regex = r"^(SF|SFL|YZ|YTO)\d{10,12}$" print(bool(re.match(regex, "SF1234567890"))) # True print(bool(re.match(regex, "YTO123456789012"))) # True print(bool(re.match(regex, "INVALIDCODE"))) # False ``` 以上代码片段展示了如何利用正则表达式检测输入字符串是否符合预设规则[^2][^4]。 --- #### 4. 注意事项 当设计快递单号正则表达式时需要注意以下几点: - **前缀准确性**:确保所使用的前缀与对应快递公司的真实编码一致。 - **数字长度灵活性**:某些情况下,同一快递公司可能会有不同的编号长度;此时应适当放宽约束条件,比如允许一定范围内变化的数字位数。 - **边界情况处理**:考虑异常数据的可能性,例如完全不符合任何已知模式的数据或超出预期长度的情况。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值