递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 94|回复: 1
打印 上一主题 下一主题

[AI开发] DeepSeek 通配符搜索

[复制链接]

23

主题

474

帖子

3928

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3928
跳转到指定楼层
楼主
发表于 昨天 20:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 fengyishen 于 2026-4-22 21:07 编辑

字节集通配符搜索类

一、概述

实现了在字节集中使用通配符进行模式搜索的功能,支持四种匹配模式,可广泛应用于文件内容搜索、协议解析、数据过滤等场景。


二、常量定义


常量
说明
匹配模式_普通0普通搜索,不处理通配符,等同于 寻找字节集
匹配模式_单通配符1使用 ? 匹配单个任意字节
匹配模式_多通配符2使用 * 匹配零个或多个任意字节
匹配模式_完全通配3同时支持 ? 和 *


三、公开方法

1. 查找字节集通配符

查找字节集通配符 (被搜索的字节集, 欲查找的模式, 匹配模式, 起始查找位置) -> 整数

功能:在字节集中查找第一个匹配通配符模式的位置
参数:
  • 被搜索的字节集:源数据
  • 欲查找的模式:包含通配符的搜索模式
  • 匹配模式:匹配模式常量(默认完全通配)
  • 起始查找位置:开始搜索的位置(默认0)

返回值:匹配位置的索引,未找到返回 -1


2. 查找所有匹配


查找所有匹配 (被搜索的字节集, 欲查找的模式, 匹配模式, 结果位置数组) -> 整数

功能:查找所有匹配通配符模式的位置
参数:
  • 被搜索的字节集:源数据
  • 欲查找的模式:包含通配符的搜索模式
  • 匹配模式:匹配模式常量(默认完全通配)
  • 结果位置数组:整数数组,用于存储所有匹配位置

返回值:匹配到的数量


四、支持的匹配示例

模式
源数据
匹配结果
"World""Hello World 123"位置 6
"?ello""Hello World 123"位置 0(匹配 "Hello")
"Hello?World""Hello World 123"位置 0(? 匹配空格)
"H*o""Hello World 123"位置 0
"He*ld""Hello World 123"位置 0
"*123""Hello World 123"位置 12
"H?*o""Hello World 123"位置 0
"***"任意数据返回起始位置



五、测试预期



========== 测试字节集通配符搜索 ==========

测试数据长度:, 15
测试数据内容:, Hello World 123
========== 测试开始 ==========


[测试1] 普通搜索 "World" -> 位置:, 6,  (期望: 6)
[测试2] 普通搜索 "abc" -> 位置:, -1,  (期望: -1)
[测试3] 单通配符搜索 "?ello" -> 位置:, 0,  (期望: 0, 匹配 Hello)
[测试4] 单通配符搜索 "Hello?World" -> 位置:, 0,  (期望: 0)
[测试5] 多通配符搜索 "H*o" -> 位置:, 0,  (期望: 0, 匹配 Hello)
[测试6] 多通配符搜索 "He*ld" -> 位置:, 0,  (期望: 0, 匹配 Hello World)
[测试7] 多通配符搜索 "*123" -> 位置:, 12,  (期望: 12)
[测试8] 完全通配符搜索 "H?*o" -> 位置:, 0,  (期望: 0)
[测试9] 完全通配符搜索 "*?o?d*" -> 位置:, 0,  (期望: 0)
[测试10] 查找所有匹配 "l" -> 匹配数量:, 3
[测试11] 从位置3开始搜索 "l" -> 位置:, 3,  (期望: 3)
[测试12] 纯通配符模式 "***" -> 位置:, 0,  (期望: 0)


========== 测试完成 ==========

五、源码下载

游客,如果您要查看本帖隐藏内容请回复







回复

使用道具 举报

19

主题

227

帖子

2618

积分

金牌会员

Rank: 6Rank: 6

积分
2618
沙发
发表于 昨天 23:52 | 只看该作者
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2026-4-23 03:54 , Processed in 0.092422 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表