小李飞刀
一个基于Python和Tkinter的3D/P3/P5历史开奖号码查询工具,支持正则表达式高级查询功能。
功能特点
· ✅ 联网获取数据:自动从互联网获取3D、P3、P5历史开奖数据
· ✅ 正则表达式查询:支持强大的正则表达式查询功能
· ✅ 多种查询方式:号码查询、期号查询、日期范围查询
· ✅ 实时数据更新:支持刷新获取最新数据
· ✅ 结果导出:支持导出查询结果到Excel
· ✅ 详细统计:显示查询结果的统计信息
3D/P3/P5 正则表达式查询详细说明文档
目录
· 概述
· 基础知识
· 组三号码查询
· 组六号码查询
· 豹子号码查询
· 各类位数相同号码查询
· 实用查询示例
· P5数据查询
· 常见问题
·
概述
本软件支持使用正则表达式进行高级号码查询。当输入包含特殊字符时,系统会自动识别为正则表达式查询模式。
识别规则:如果输入包含以下任一字符,系统将识别为正则表达式:
· * . ^ $ [ ] ( ) + ? | { }
数据类型:
· 3D数据:3位数字(百位、十位、个位)
· P3数据:3位数字(百位、十位、个位)
· P5数据:5位数字(百位、十位、个位、第四位、第五位)
·
基础知识
一、号码类型定义
- 豹子号码(AAA型)
· 定义:三个数字完全相同
· 示例:111, 222, 333, 444, 555, 666, 777, 888, 999, 000
· 特点:只有10种可能(000-999)
- 组三号码(AAB/ABA/BAA型)
· 定义:有两个数字相同,另一个不同
· 示例:AAB型:112, 223, 331(前两位相同)ABA型:121, 232, 313(首尾相同)BAA型:211, 322, 133(后两位相同)
· 特点:共有90种可能(10×9=90)
- 组六号码(ABC型)
· 定义:三个数字都不相同
· 示例:123, 456, 789, 135, 246, 357
· 特点:共有120种可能(C(10,3)×3!=120)
二、正则表达式基本符号
符号说明示例
.匹配任意单个数字1.3 匹配 123, 153, 183 等
匹配前面的字符0次或多次1 匹配 1, 11, 111 等
+匹配前面的字符1次或多次1+ 匹配 1, 11, 111 等
?匹配前面的字符0次或1次1? 匹配空或1
^匹配字符串开始^7 匹配百位是7的号码
$匹配字符串结束5$ 匹配个位是5的号码
[0-9]匹配0-9任意数字[5-9] 匹配5,6,7,8,9
[^5]匹配不是5的任意数字[^5] 匹配0,1,2,3,4,6,7,8,9
( )分组,用于引用(.)\1 匹配相同数字
\1引用第一个分组(.)\1 匹配11, 22, 33 等
\|或运算符1\|2 匹配包含1或2的号码
{n}匹配n次[0-9]{3} 匹配3位数字
组三号码查询
一、查询所有组三号码
方法1:使用分组引用(推荐)
表达式:^(.)\1(?!\1).$|^(.)(?!\2).\2$|^[^.]..(.)\3$
说明:
· ^(.)\1(?!\1).$:匹配AAB型(前两位相同,第三位不同)
· ^(.)(?!\2).\2$:匹配ABA型(首尾相同,中间不同)
· ^[^.]..(.)\3$:匹配BAA型(后两位相同,第一位不同)
示例匹配:
· 112, 223, 331(AAB型)
· 121, 232, 313(ABA型)
· 211, 322, 133(BAA型)
二、查询特定组三号码
- 查询百位和十位相同的组三(AAB型)
表达式:^(.)\1(?!\1).$
示例匹配:112, 223, 331, 445, 556
- 查询百位和个位相同的组三(ABA型)
表达式:^(.)(?!\1).\1$
示例匹配:121, 232, 313, 454, 565
- 查询十位和个位相同的组三(BAA型)
表达式:^[^.]..(.)\1$
示例匹配:211, 322, 133, 544, 655
- 查询包含特定数字的组三
查询包含数字5的组三号码:
表达式:^(5)\1[^5]$|^(5)[^5]\1$|^[^5]..(5)\3$
示例匹配:551, 552, 515, 525, 155, 255
组六号码查询
一、查询所有组六号码
推荐表达式:
^(.)(?!\1)(.)(?!\1|\2).$
说明:
· ^:开始
· (.):捕获百位
· (?!\1):十位与百位不同
· (.):捕获十位
· (?!\1|\2):个位与百位、十位都不同
· .$:结束
示例匹配:123, 456, 789, 135, 246, 357
二、查询特定组六号码
- 查询包含特定数字的组六
查询包含5的组六号码:
表达式:^(?=.*5)(.)(?!\1)(.)(?!\1|\2).$
示例匹配:125, 156, 257, 358, 459, 567
- 查询特定范围的组六
查询百位是5-9的组六号码:
表达式:^5-9(?!\1)(.)(?!\1|\2).$
示例匹配:567, 589, 678, 789
豹子号码查询
一、查询所有豹子号码
表达式:^(\d)\1{2}$
示例匹配:000, 111, 222, 333, 444, 555, 666, 777, 888, 999
二、查询特定豹子号码
- 查询特定数字的豹子
查询数字5的豹子:
表达式:^555$
示例匹配:555
- 查询多个特定豹子
查询5、6、7的豹子:
表达式:^(5{3}|6{3}|7{3})$
示例匹配:555, 666, 777
各类位数相同号码查询
一、百位和十位相同
表达式:^(.)\1.$
示例匹配:110, 112, 223, 331, 445(包括组三和豹子)
排除豹子(只匹配组三):
^(.)\1(?!\1).$
二、百位和个位相同
表达式:^(.).\1$
示例匹配:101, 121, 212, 313, 454(包括组三和豹子)
排除豹子(只匹配组三):
^(.)(?!\1).\1$
三、十位和个位相同
表达式:^..(.)\1$
示例匹配:011, 122, 233, 344, 455(包括组三和豹子)
排除豹子(只匹配组三):
^[^.]..(.)\1$
四、三位都不同(组六)
推荐表达式:
^(.)(?!\1)(.)(?!\1|\2).$
示例匹配:123, 456, 789, 135, 246, 357
实用查询示例
一、基础查询
查询需求正则表达式示例匹配
百位是7^7715, 789, 700
个位是55$715, 825, 005
百位和个位都是8^8.*8$818, 828, 888
包含数字55515, 555, 125
百位是5-9^[5-9]567, 789, 900
不包含5[^5]123, 678, 999
二、组合查询
查询需求正则表达式说明
百位是7,个位是5^7.*5$715, 725, 735
百位和十位相同^(.)\1.110, 223, 445
十位和个位相同^..(.)\1$011, 122, 233
百位和个位相同^(.).\1$101, 212, 323
三、高级查询
查询需求正则表达式说明
全偶数^[02468]{3}$024, 246, 888
全奇数^[13579]{3}$135, 357, 999
包含连续数字12|23|34|45|56|67|78|89123, 234, 345
大中小组合^[7-9][4-6][0-3]$大中小:750, 841, 932
P5数据查询
P5数据是5位数字,查询方法与3D/P3类似,但需要扩展到5位。
一、基础查询
查询需求正则表达式说明
前三位是888^88888800, 88811, 88899
后两位是8888$00088, 12388, 99988
包含88888888800, 18881, 00888
第一位是7^770000, 71234, 79999
二、位置相同查询
- 第一位和第三位相同
表达式:^(.).\1..$
示例匹配:10123, 21234, 32345
- 后两位相同
表达式:^...(.)\1$
示例匹配:12344, 45677, 78999
- 前三位相同(P5豹子)
表达式:^(\d)\1{2}..$
示例匹配:11123, 22234, 33345
- 后三位相同
表达式:^..(\d)\1{2}$
示例匹配:12111, 23222, 34333
三、P5组三/组六查询
查询5位数字各不相同的号码:
表达式:^(.)(?!\1)(.)(?!\1|\2)(.)(?!\1|\2|\3)(.)(?!\1|\2|\3|\4).$
说明:确保5位数字都不相同。
常见问题
Q1:为什么我的正则表达式查询不到结果?
可能原因:
· 正则表达式语法错误
· 数据中确实没有匹配的号码
· 使用了不兼容的正则语法
解决方法:
· 先使用简单表达式测试(如 ^7 查询百位是7的号码)
· 逐步增加复杂度
· 检查表达式中的特殊字符是否需要转义
Q2:如何查询"不是组三"的号码?
表达式:^(?!(\d)\1[^\1]$|(\d)[^\2]\2$|^[^.]..(\d)\3$).{3}$
说明:排除所有组三类型,剩下的就是豹子和组六。
Q3:如何查询"不是豹子"的号码?
表达式:^(?!(\d)\1{2}$).{3}$
说明:排除豹子,剩下的就是组三和组六。
Q4:如何查询"组三或组六"(排除豹子)?
表达式:^(?!(\d)\1{2}$).{3}$
说明:排除豹子即可。
Q5:正则表达式中的反斜杠需要转义吗?
在软件中输入时:
· 如果使用 \1 引用分组,直接输入 \1 即可
· 如果使用 \\ 表示反斜杠,需要输入 \\
示例:
· 查询百位和十位相同:^(.)\1.$
· 查询包含反斜杠的号码:\\(实际使用中不会用到)
Q6:如何组合多个条件?
使用 |(或运算符):
示例:查询百位是7或8的号码
^7|^8
示例:查询组三或豹子
^(\d)\1{2}$|^(.)\1[^\1]$|^(.)[^\2]\2$|^[^.]..(.)\3$
快速参考表
3D/P3常用表达式
查询类型正则表达式备注
所有豹子^(\d)\1{2}$000-999
所有组三^(.)\1(?!\1).$|^(.)(?!\2).\2$|^[^.]..(.)\3$AAB/ABA/BAA
所有组六^(.)(?!\1)(.)(?!\1|\2).$三个不同(推荐)
百位是X^XX为0-9
个位是XX$X为0-9
百十相同^(.)\1.$包括豹子
百个相同^(.).\1$包括豹子
十个相同^..(.)\1$包括豹子
P5常用表达式
查询类型正则表达式备注
前三位相同^(\d)\1{2}..$P5豹子前三位
后两位相同^...(.)\1$后两位相同
第一位是X^XX为0-9
最后一位是XX$X为0-9
技术支持
· 软件名称:小李飞刀
· 版本:3.3
· 作者:摸球校尉陈八七
· 组织:东湖沙湾论彩彩迷群
· 邮箱:moqiuxiaowei@qq.com
· QQ群:253799100 摸金门
· 微信号:moqiuxiaowei
更新日志
· v1.0 (2025-11-24):初始版本,包含组三、组六、豹子查询说明
·
提示:在软件中输入正则表达式后,点击"查询"按钮即可执行查询。如有疑问,请点击"正则查询帮助"按钮查看软件内置帮助。