CN107239500A - 一种字符串匹配方法及系统 - Google Patents
一种字符串匹配方法及系统 Download PDFInfo
- Publication number
- CN107239500A CN107239500A CN201710304377.XA CN201710304377A CN107239500A CN 107239500 A CN107239500 A CN 107239500A CN 201710304377 A CN201710304377 A CN 201710304377A CN 107239500 A CN107239500 A CN 107239500A
- Authority
- CN
- China
- Prior art keywords
- string
- module
- character
- matching
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000003993 interaction Effects 0.000 claims abstract description 10
- 238000003491 array Methods 0.000 claims abstract description 7
- 230000033001 locomotion Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008595 infiltration Effects 0.000 description 1
- 238000001764 infiltration Methods 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种字符串匹配方法及系统,涉及字符匹配领域。一种字符串匹配方法它包括以下步骤:输入文本字符串:将所有文本字符串输入长度为n;输入模式串:将要与文本字符串进行匹配的模式串输入长度为m,m小于等于n;定义数组;字符串匹配。一种字符串匹配系统,其特征在于,它包括:人机交互模块、字符串输入模块、数组定义模块、字符串匹配模块和输出显示模块;人机交互模块与符串输入模块相连,字符串输入模块和数组定义模块相连,数组定义模块和字符串匹配模块相连,字符串匹配模块与输出显示模块相连。本发明使算法更简单,算法需要的空间资源更少,计算速度更快。
Description
技术领域
本发明涉及字符匹配领域,特别是一种字符串匹配方法及系统。
背景技术
在国民经济和社会各领域信息化深入发展的同时,相应的安全保障问题也更为凸显。目前,网络攻击已被作为世界面临的主要安全威胁之一。网络窃密、个人隐私被滥用、敌对势力利用网络进行意识形态渗透等问题日益突出,信息系统受到破坏后,对国家安全、社会秩序和公众利益造成的损害也越严重。近几年来,APT攻击已经成为业界关注和讨论的热点。APT攻击一般是指针对政府机关、研究机构或特定企业的连续不间断入侵渗透,利用软硬件缺陷和社会工程学原理进行的持续攻击。它以其独特的攻击方式和手段,使得传统的安全防御工具已无法进行有效的防御,模式匹配速度逐渐成为误用入侵检测系统的瓶颈,寻求一种快速有效的模式匹配算法成为当前研究的热点。针对以上问题提供一种改进的字符串匹配的方法及系统是很有必要的。
发明内容
本发明的目的在于克服现有技术的不足,提供一种字符串匹配方法及系统使算法更简单,算法需要的空间资源更少,计算速度更快。
本发明的目的是通过以下技术方案来实现的:一种字符串匹配方法,它包括以下步骤:
S1输入文本字符串:将所有文本字符串输入长度为n;
S2输入模式串:将要与文本字符串进行匹配的模式串输入长度为m,m小于等于n;
S3定义数组;
S4字符串匹配。
进一步限定,所述的定义数组包括:
增加一个新的移动数组;
定义一个预制数组。
进一步限定,所述的增加一个新的移动数组是根据字符在模式串中所出现的次数来确定新的移动数组长度。
进一步限定,在字符在模式串中所出现的次数小于2时,新的移动数组长度为m;反之新的移动数组长度为m-f-1,f表示字符在模式串中倒数第二次出现的位置。
进一步限定,所述的定义预制数组具体分为如下步骤:
S31判断字符是否在模式串中出现;
S32若没有出现,该字符在模式串中位置为-1,即预制数组长度为0;
S33若出现,判定字符最后出现在模式中的位置;
S34字符在模式串中位置为0,即预制数组长度为1;字符在模式串中位置为e,即预制数组长度为e-1,0<<e<<m。
进一步限定,所述的字符串匹配具体分为如下步骤:
S41当匹配开始比较输入文本字符串的k-m+1至k的子串是否与输入模式串的0至m-1的子串,从右至左依次检查判断是否完全匹配,匹配成功则执行下一子串匹配,反之执行下一步骤。
S42比较输入文本字符串的k-1子串和预制数组的k子串中所有元素是否匹配;
S43将文本指针重新赋值。
进一步限定,所述的将文本指针重新赋值为k+m。
一种字符串匹配系统,其特征在于,它包括:字符串输入模块、数组定义模块、字符串匹配模块、输出显示模块和人机交互模块;字符串输入模块与数组定义模块相连,数组定义模块与字符匹配模块相连,字符匹配模块与输出显示相连,输出显示模块与人机交互模块相连。
进一步限定,所述的字符串输入模块将长度为n的所有文本字符串输入,将长度为m文本字符串进行匹配的模式串输入,m小于等于n;数组定义模块分别增加一个新的移动数组和定义一个预制数组。
进一步限定,所述的字符串匹配模块执行文本字符串与模式串的匹配具体为:
当匹配开始比较输入文本字符串的k-m+1至k的子串是否与输入模式串的0至m-1的子串,从右至左依次检查判断是否完全匹配,匹配成功则执行下一子串匹配,反之执行下一步骤;
比较输入文本字符串的k-1子串和预制数组的k子串中所有元素是否匹配;
将文本指针重新赋值。
本发明的有益效果是:本发明使算法更简单,算法需要的空间资源更少,计算速度更快充分利用模式串特征进行更大距离的移动,使算法获得更高的效率。改进后的算法能够增加“坏字符”方法的右移量,有效地提高匹配速率。针对网络入侵行为的入侵检测,基于模式匹配技术的入侵检测系统,就是通过提取已有攻击信息的特征编码成模式,然后将审计信息与该模式进行匹配,从中发现是否存在攻击行为实现对网络安全的有效监控,预防网络犯罪。
附图说明
图1为本发明方法步骤流程图;
图2为本发明了系统框架图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,一种字符串匹配方法,它包括以下步骤:
S1输入文本字符串:将所有文本字符串输入长度为n;
S2输入模式串:将要与文本字符串进行匹配的模式串输入长度为m,m小于等于n;
S3定义数组;
S4字符串匹配。
进一步限定,所述的定义数组包括:
增加一个新的移动数组;
定义一个预制数组。
进一步限定,所述的增加一个新的移动数组是根据字符在模式串中所出现的次数来确定新的移动数组长度。
进一步限定,在字符在模式串中所出现的次数小于2时,新的移动数组长度为m;反之新的移动数组长度为m-f-1,f表示字符在模式串中倒数第二次出现的位置。
进一步限定,所述的定义预制数组具体分为如下步骤:
S31判断字符是否在模式串中出现;
S32若没有出现,该字符在模式串中位置为-1,即预制数组长度为0;
S33若出现,判定字符最后出现在模式中的位置;
S34字符在模式串中位置为0,即预制数组长度为1;字符在模式串中位置为e,即预制数组长度为e-1。
进一步限定,所述的字符串匹配具体分为如下步骤:
S41当匹配开始比较输入文本字符串的k-m+1至k的子串是否与输入模式串的0至m-1的子串,从右至左依次检查判断是否完全匹配,匹配成功则执行下一子串匹配,反之执行下一步骤。
S42比较输入文本字符串的k-1子串和预制数组的k子串中所有元素是否匹配;
S43将文本指针重新赋值。
进一步限定,所述的将文本指针重新赋值为k+m。
如图2所示,一种字符串匹配系统,其特征在于,它包括:人机交互模块、字符串输入模块、数组定义模块、字符串匹配模块和输出显示模块;人机交互模块与符串输入模块相连,字符串输入模块和数组定义模块相连,数组定义模块和字符串匹配模块相连,字符串匹配模块与输出显示模块相连。
进一步限定,所述的字符串输入模块将长度为n的所有文本字符串输入,将长度为m文本字符串进行匹配的模式串输入,m小于等于n;数组定义模块分别增加一个新的移动数组和定义一个预制数组。
进一步限定,所述的字符串匹配模块执行文本字符串与模式串的匹配具体为:
当匹配开始比较输入文本字符串的k-m+1至k的子串是否与输入模式串的0至m-1的子串,从右至左依次检查判断是否完全匹配,匹配成功则执行下一子串匹配,反之执行下一步骤。
比较输入文本字符串的k-1子串和预制数组的k子串中所有元素是否匹配;
将文本指针重新赋值。
实施例:
通过字符串输入模块将长度为n所有文本字符串输入;
通过字符串输入模块将长度为m且要与文本字符串进行匹配的模式串输入,m小于等于n;
通过人机交互模块控制数组定义模块增加一个新的移动数组:
判断字符在模式串中所出现的次数是否大于等于2;
如果字符在模式串中所出现的次数小于2时,新的移动数组长度为m;反之新的移动数组长度为m-f-1,f表示字符在模式串中倒数第二次出现的位置;
通过人机交互模块控制数组定义模块定义一个预制数组;
判断字符是否在模式串中出现;
若没有出现,该字符在模式串中位置为-1,即预制数组长度为0;
若出现,判定字符最后出现在模式中的位置;
字符在模式串中位置为0,即预制数组长度为1;字符在模式串中位置为e,即预制数组长度为e-1。
字符串匹配比较输入文本字符串的k-m+1至k的子串是否与输入模式串的0至m-1的子串,从右至左依次检查判断是否完全匹配,匹配成功则执行下一子串匹配;
反之比较输入文本字符串的k-1子串和预制数组的k子串中所有元素是否匹配;
无论上述匹配成功或者失败都将文本指针重新赋值为k+m。
匹配结果最终将其显示在显示屏上。
本发明所揭露的方法、系统和模块,可以通过其它的方式实现。以上所描述的实施例仅是示意性的,例如,所述模块的划分,可以仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以说通过一些接口,系统或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述分立部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例的方案目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、制度存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识,进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (10)
1.一种字符串匹配方法,其特征在于,它包括以下步骤:
S1输入文本字符串:将所有文本字符串输入长度为n;
S2输入模式串:将要与文本字符串进行匹配的模式串输入长度为m,m小于等于n;
S3定义数组;
S4字符串匹配。
2.根据权利要求1所述的一种字符串匹配方法,其特征在于,所述的定义数组包括:
增加一个新的移动数组;
定义一个预制数组。
3.根据权利要求2所述的一种字符串匹配方法,其特征在于:所述的增加一个新的移动数组是根据字符在模式串中所出现的次数来确定新的移动数组长度。
4.根据权利要求3所述的一种字符串匹配方法,其特征在于:判断字符在模式串中所出现的次数是否小于2,若是则长度为m;反之新的移动数组长度为m-f-1,f表示字符在模式串中倒数第二次出现的位置。
5.根据权利要求2所述的一种字符串匹配方法,其特征在于:所述的定义预制数组具体分为如下步骤:
S31判断字符是否在模式串中出现;
S32若没有出现,该字符在模式串中位置为-1,即预制数组长度为0;
S33若出现,判定字符最后出现在模式中的位置;
S34字符在模式串中位置为0,即预制数组长度为1;字符在模式串中位置为e,即预制数组长度为e-1。
6.根据权利要求1所述的一种字符串匹配方法,其特征在于:所述的字符串匹配具体分为如下步骤:
S41当匹配开始比较输入文本字符串的k-m+1至k的子串是否与输入模式串的0至m-1的子串,从右至左依次检查判断是否完全匹配,匹配成功则执行下一子串匹配,反之执行下一步骤;
S42比较输入文本字符串的k-1子串和预制数组的k子串中所有元素是否匹配;
S43将文本指针重新赋值。
7.根据权利要求6所述的一种字符串匹配方法,其特征在于:所述的将文本指针重新赋值为k+m。
8.一种字符串匹配系统,其特征在于,它包括:人机交互模块、字符串输入模块、数组定义模块、字符串匹配模块和输出显示模块;人机交互模块与符串输入模块相连,字符串输入模块和数组定义模块相连,数组定义模块和字符串匹配模块相连,字符串匹配模块与输出显示模块相连。
9.一种字符串匹配系统,其特征在于,它包括:所述的字符串输入模块将长度为n的所有文本字符串输入,将长度为m文本字符串进行匹配的模式串输入,m小于等于n;数组定义模块分别增加一个新的移动数组和定义一个预制数组。
10.一种字符串匹配系统,其特征在于,它包括:所述的字符串匹配模块执行文本字符串与模式串的匹配具体为:
当匹配开始比较输入文本字符串的k-m+1至k的子串是否与输入模式串的0至m-1的子串,从右至左依次检查判断是否完全匹配,匹配成功则执行下一子串匹配,反之执行下一步骤;
比较输入文本字符串的k-1子串和预制数组的k子串中所有元素是否匹配;
将文本指针重新赋值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710304377.XA CN107239500A (zh) | 2017-05-03 | 2017-05-03 | 一种字符串匹配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710304377.XA CN107239500A (zh) | 2017-05-03 | 2017-05-03 | 一种字符串匹配方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107239500A true CN107239500A (zh) | 2017-10-10 |
Family
ID=59984765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710304377.XA Pending CN107239500A (zh) | 2017-05-03 | 2017-05-03 | 一种字符串匹配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107239500A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489997A (zh) * | 2019-08-16 | 2019-11-22 | 北京计算机技术及应用研究所 | 一种基于模式匹配算法的敏感信息脱敏方法 |
CN112069303A (zh) * | 2020-09-17 | 2020-12-11 | 四川长虹电器股份有限公司 | 字符串的匹配查找方法、装置及终端 |
CN112668667A (zh) * | 2021-01-22 | 2021-04-16 | 上海华虹宏力半导体制造有限公司 | 版图文件的扫描方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499382A (en) * | 1993-09-20 | 1996-03-12 | Nusinov; Eugene B. | Circuit and method of bit-packing and bit-unpacking using a barrel shifter |
CN101025750A (zh) * | 2006-09-08 | 2007-08-29 | 丁光耀 | 基于离散性、交叉性、非完全性的特性字符串匹配方法 |
CN101030216A (zh) * | 2007-04-02 | 2007-09-05 | 丁光耀 | 基于特性参数的字符串匹配方法 |
CN102063510A (zh) * | 2011-01-17 | 2011-05-18 | 珠海全志科技有限公司 | 字符串的匹配查找方法 |
-
2017
- 2017-05-03 CN CN201710304377.XA patent/CN107239500A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499382A (en) * | 1993-09-20 | 1996-03-12 | Nusinov; Eugene B. | Circuit and method of bit-packing and bit-unpacking using a barrel shifter |
CN101025750A (zh) * | 2006-09-08 | 2007-08-29 | 丁光耀 | 基于离散性、交叉性、非完全性的特性字符串匹配方法 |
CN101030216A (zh) * | 2007-04-02 | 2007-09-05 | 丁光耀 | 基于特性参数的字符串匹配方法 |
CN102063510A (zh) * | 2011-01-17 | 2011-05-18 | 珠海全志科技有限公司 | 字符串的匹配查找方法 |
Non-Patent Citations (1)
Title |
---|
谭静: "基于向量空间模型的文本相似度算法研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489997A (zh) * | 2019-08-16 | 2019-11-22 | 北京计算机技术及应用研究所 | 一种基于模式匹配算法的敏感信息脱敏方法 |
CN112069303A (zh) * | 2020-09-17 | 2020-12-11 | 四川长虹电器股份有限公司 | 字符串的匹配查找方法、装置及终端 |
CN112668667A (zh) * | 2021-01-22 | 2021-04-16 | 上海华虹宏力半导体制造有限公司 | 版图文件的扫描方法 |
CN112668667B (zh) * | 2021-01-22 | 2024-05-14 | 上海华虹宏力半导体制造有限公司 | 版图文件的扫描方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019210493B2 (en) | Anomaly detection to identify coordinated group attacks in computer networks | |
US11178170B2 (en) | Systems and methods for detecting anomalous behavior within computing sessions | |
Li et al. | Attribution classification method of APT malware in IoT using machine learning techniques | |
US20200195667A1 (en) | Url attack detection method and apparatus, and electronic device | |
Makkar et al. | Secureiiot environment: Federated learning empowered approach for securing iiot from data breach | |
Chaudhary et al. | A review of various challenges in cybersecurity using artificial intelligence | |
CN103491062B (zh) | 一种生成密码的方法和装置 | |
CN105871536B (zh) | 一种基于随机延时的面向aes算法的抗功耗攻击方法 | |
CN105846814B (zh) | 针对加密技术领域乘法运算的量子逻辑电路的构造方法 | |
CN107239500A (zh) | 一种字符串匹配方法及系统 | |
Wang et al. | New chaotic encryption algorithm based on chaotic sequence and plain text | |
Li et al. | Improved reversible data hiding for encrypted images using full embedding strategy | |
CN107154843A (zh) | 一种抗功耗攻击的sm4算法的硬件实现系统 | |
Hsu et al. | Enhancing file entropy analysis to improve machine learning detection rate of ransomware | |
Tayyab et al. | Cryptographic based secure model on dataset for deep learning algorithms | |
CN110175475A (zh) | 一种智能卡数据处理方法、装置及计算机可读存储介质 | |
Ren et al. | Protecting intellectual property with reliable availability of learning models in ai-based cybersecurity services | |
Rasheed et al. | Adversarial attacks on featureless deep learning malicious urls detection | |
Vahedi et al. | Identifying and categorizing malicious content on paste sites: a neural topic modeling approach | |
Kamalam et al. | Detection of phishing websites using machine learning | |
CN109561236B (zh) | 图像加密、识别方法装置、设备及介质 | |
Cheng et al. | DeepDIST: A Black-Box Anti-Collusion Framework for Secure Distribution of Deep Models | |
JP6721551B2 (ja) | 抽出装置、抽出方法および抽出プログラム | |
CN118103839A (zh) | 用于检测可疑网络活动的随机字符串分类 | |
CN111092721B (zh) | 一种设置访问口令的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171010 |