3D/P3/P5 正则表达式查询详细说明文档
目录
概述
本软件支持使用正则表达式进行高级号码查询。当输入包含特殊字符时,系统会自动识别为正则表达式查询模式。
识别规则:如果输入包含以下任一字符,系统将识别为正则表达式:
*.^$[]()+?|{}
数据类型:
- 3D数据:3位数字(百位、十位、个位)
- P3数据:3位数字(百位、十位、个位)
- P5数据:5位数字(百位、十位、个位、第四位、第五位)
基础知识
一、号码类型定义
1. 豹子号码(AAA型)
- 定义:三个数字完全相同
- 示例:111, 222, 333, 444, 555, 666, 777, 888, 999, 000
- 特点:只有10种可能(000-999)
2. 组三号码(AAB/ABA/BAA型)
- 定义:有两个数字相同,另一个不同
- 示例:
- AAB型:112, 223, 331(前两位相同)
- ABA型:121, 232, 313(首尾相同)
- BAA型:211, 322, 133(后两位相同)
- 特点:共有90种可能(10×9=90)
3. 组六号码(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型)
二、查询特定组三号码
1. 查询百位和十位相同的组三(AAB型)
表达式:^(.)\1(?!\1).$
示例匹配:112, 223, 331, 445, 556
2. 查询百位和个位相同的组三(ABA型)
表达式:^(.)(?!\1).\1$
示例匹配:121, 232, 313, 454, 565
3. 查询十位和个位相同的组三(BAA型)
表达式:^[^.]..(.)\1$
示例匹配:211, 322, 133, 544, 655
4. 查询包含特定数字的组三
查询包含数字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
二、查询特定组六号码
1. 查询包含特定数字的组六
查询包含5的组六号码:
表达式:^(?=.*5)(.)(?!\1)(.)(?!\1|\2).$
示例匹配:125, 156, 257, 358, 459, 567
2. 查询特定范围的组六
查询百位是5-9的组六号码:
表达式:^5-9(?!\1)(.)(?!\1|\2).$
示例匹配:567, 589, 678, 789
豹子号码查询
一、查询所有豹子号码
表达式:^(\d)\1{2}$
示例匹配:000, 111, 222, 333, 444, 555, 666, 777, 888, 999
二、查询特定豹子号码
1. 查询特定数字的豹子
查询数字5的豹子:
表达式:^555$
示例匹配:555
2. 查询多个特定豹子
查询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 | ^7 | 715, 789, 700 |
| 个位是5 | 5$ | 715, 825, 005 |
| 百位和个位都是8 | ^8.*8$ | 818, 828, 888 |
| 包含数字5 | 5 | 515, 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 | 89` | 123, 234, 345 |
| 大中小组合 | ^[7-9][4-6][0-3]$ | 大中小:750, 841, 932 |
P5数据查询
P5数据是5位数字,查询方法与3D/P3类似,但需要扩展到5位。
一、基础查询
| 查询需求 | 正则表达式 | 说明 |
|---|---|---|
| 前三位是888 | ^888 | 88800, 88811, 88899 |
| 后两位是88 | 88$ | 00088, 12388, 99988 |
| 包含888 | 888 | 88800, 18881, 00888 |
| 第一位是7 | ^7 | 70000, 71234, 79999 |
二、位置相同查询
1. 第一位和第三位相同
表达式:^(.).\1..$
示例匹配:10123, 21234, 32345
2. 后两位相同
表达式:^...(.)\1$
示例匹配:12344, 45677, 78999
3. 前三位相同(P5豹子)
表达式:^(\d)\1{2}..$
示例匹配:11123, 22234, 33345
4. 后三位相同
表达式:^..(\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 | ^X | X为0-9 | ||
| 个位是X | X$ | X为0-9 | ||
| 百十相同 | ^(.)\1.$ | 包括豹子 | ||
| 百个相同 | ^(.).\1$ | 包括豹子 | ||
| 十个相同 | ^..(.)\1$ | 包括豹子 |
P5常用表达式
| 查询类型 | 正则表达式 | 备注 |
|---|---|---|
| 前三位相同 | ^(\d)\1{2}..$ | P5豹子前三位 |
| 后两位相同 | ^...(.)\1$ | 后两位相同 |
| 第一位是X | ^X | X为0-9 |
| 最后一位是X | X$ | X为0-9 |
版权信息
软件名称:小李飞刀
版本:3.3
作者:摸球校尉陈八七
组织:东湖沙湾论彩彩迷群
版权所有:© 2026 东湖沙湾论彩彩迷群
更新日志
- v3.3:与主程序同步,补充快捷查询、和值/跨度等说明
- v1.0 (2025-11-24):初始版本,包含组三、组六、豹子查询说明
提示:在软件中输入正则表达式后,点击"查询"按钮即可执行查询。如有疑问,请点击"正则查询帮助"按钮查看软件内置帮助。