[发明专利]用于变电站报文序列检测的字符串匹配方法、设备及介质有效
申请号: | 202110916680.1 | 申请日: | 2021-08-11 |
公开(公告)号: | CN113672779B | 公开(公告)日: | 2023-07-14 |
发明(设计)人: | 钱钢;李康毅;张锋明;朱玛;俞小虎;谢栋;潘利江;王五静;朱明良;章涛;温朝阳;俞芳;李勇 | 申请(专利权)人: | 国网浙江省电力有限公司绍兴供电公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903 |
代理公司: | 杭州华鼎知识产权代理事务所(普通合伙) 33217 | 代理人: | 秦晓刚 |
地址: | 312000 *** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 变电站 报文 序列 检测 字符串 匹配 方法 设备 介质 | ||
本发明公开了一种用于变电站报文序列检测的字符串匹配方法、设备及介质,当T与S出现匹配情况时,判断T最右端对应S的下一个字符S[i+m]是否存在于T中,若不存在,则匹配策略集合与Sunday算法相同;若存在,则记录其在T[0,m‑1]中的位置q,同时记录S中当前匹配失败的字符S[i+j]在T[0,j‑1]中的位置p,根据p、q的值以及S[i+j+1,i+m‑1]和T[p+1,m‑1]的匹配情况来计算T右移的最大距离。本发明减少了字符匹配和比较的次数,从而缩短了匹配时间,因此有效提升对目标字符串的匹配效率。
技术领域
本发明属于信息处理技术领域,尤其是涉及一种针对智能变电站报文白名单的快速字符串匹配方法。
背景技术
通过解析智能变电站的全站系统配置(substation configurationdescription,SCD)文件可以提取相应信息可以建立序列白名单列表。同时对报文进行捕获,利用相关软件解析读取关键信息可以组建检测目标序列字符串T。然后通过与序列白名单列表中的对象,即源序列字符串S的比对可检测出异常序列(S=T,序列逻辑正常;S≠T,序列逻辑异常)。
但在智能变电站场景下,当需要对待检测序列与序列白名单列表进行匹配时,不可避免的会出现大量的字符重复情况。如图1所示,该图中子序列a多次参与合成过程导致白名单列表中的大量字符串含有公共子串a,这将严重影响KMP算法和Sunday算法(经典字符串匹配算法)的效率。因为在T与S中存在大量重复字符时,Sunday算法的匹配次数会随着首字符的重复量快速增加。因此有必要对字符串匹配算法在智能变电站报文序列检测的场景下做出优化。
发明内容
针对现有智能变电站报文序列检测场景下,Sunday算法存在的效率较低的问题,本发明所要解决的技术问题就是提供一种用于智能变电站报文序列检测的字符串匹配方法、设备、介质,有效提升对目标字符串的匹配效率。
为解决上述技术问题,本发明采用如下技术方案:
一方面,提供了一种用于智能变电站报文序列检测的字符串匹配方法,包括如下步骤:
S1:当T与S出现匹配情况时,判断T最右端对应S的下一个字符S[i+m]是否存在于T[0,m-1]中,若不存在,执行S2;若存在,则执行S3;
S2:T右移m+1个字符的距离,随后判断匹配是否成功,若成功则完成匹配,并返回执行S1;
S3:记录S[i+m]在T中出现的位置q[m],随后继续执行S4;
S4:判断S[i+j]是否在T[0,j-1]中出现,若不出现则执行S5,若出现则执行S6;
S5:T右移max(j+1,m-max(q))个字符的距离,随后判断匹配是否成功,若成功则完成匹配,并返回执行S1;
S6:记录S[i+j]在T中出现的位置p[j],随后继续执行S7;
S7:判断m-j是否与max(q)-min(p)相等,若不相等则执行S8,若相等则执行S9;
S8:T右移m-min(q)个字符的距离,随后判断匹配是否成功,若成功则完成匹配,并返回执行S1;
S9:判断subtring是否与pattern相等,若不相等,则返回执行S8,若相等,则执行S10;
S10:T右移m-max(q)个字符的距离,随后判断匹配是否成功,若成功则完成匹配,若不成功则返回执行S1;
对其中的参数符号进行定义如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国网浙江省电力有限公司绍兴供电公司,未经国网浙江省电力有限公司绍兴供电公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110916680.1/2.html,转载请声明来源钻瓜专利网。