正则表达式匹配系统技术方案

技术编号:28978922 阅读:21 留言:0更新日期:2021-06-23 09:25
一种正则表达式匹配系统,包括:控制装置以及匹配装置,其中:所述匹配装置包括N个匹配单元,每一个匹配单元中存在一一对应的存储单元;所述控制装置,与所述匹配装置耦接,适于根据目标正则表达式,向所述匹配装置中的M个存储单元均写入一个字符;M为所述目标正则表达式的长度,且1≤M≤N;所述匹配装置,适于将所述M个存储单元中所存储的M个字符与待匹配的字符串进行一一比对,并输出相应的比较结果。上述方案能够减少正则表达式处理系统进行匹配时的所需使用的资源,提高运行效率。

【技术实现步骤摘要】
正则表达式匹配系统
本专利技术涉及FPGA
,尤其涉及一种正则表达式匹配系统。
技术介绍
正则表达式是对字符串和特殊字符操作的一种逻辑公式,利用预先定义的特定字符及特定字符的组合,组成规则字符串,该规则字符串用来表达对字符串的一种逻辑过滤。正则表达式实质上是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。现有技术中,通常采用软件算法执行正则表达式的匹配。然而,随着网络带宽的大幅度提高、网络数据流量的剧增以及云计算技术的快速发展,采用软件算法执行正则表达式无法实现正则表达式的高速匹配。由于硬件能够进行并行化工作的特点,可以用于快速处理正则表达式的匹配。在使用硬件执行正则表达式的匹配时,采用可重构系统构建正则表达式处理系统。现有的可重构系统中,系统在进行正则表达式匹配时所需使用的资源较多、运行效率较低。
技术实现思路
本专利技术实施例解决的是可重构系统构建的正则表达式处理系统进行正则表达式匹配时所需使用的资源较多,运行效率较低。为解决上述技术问题,本专利技术实施例提供一种正则表达式匹配系统,包括:控制装置以及匹配装置,其中:所述匹配装置包括N个匹配单元,每一个匹配单元中存在一一对应的存储单元;所述控制装置,与所述匹配装置耦接,适于根据目标正则表达式,向所述匹配装置中的M个存储单元均写入一个字符;M为所述目标正则表达式的长度,且1≤M≤N;所述匹配装置,适于将所述M个存储单元中所存储的M个字符与待匹配的字符串进行一一比对,并输出相应的比较结果。可选的,所述N个匹配单元中的第i个匹配单元,包括:比较模块,第一输入端与其一一对应的存储单元耦接,适于输入所述对应的存储单元中存储的字符;第二输入端输入所述待匹配的字符串中的第i个字符;输出端与时序模块耦接,适于对所述第一输入端的输入与所述第二输入端的输入进行比较,并将得到的比较结果输出至所述时序模块;使能模块,适于接收上一级匹配单元输出的前驱使能信号,以及获取输入至下一级匹配单元的后驱使能信号,进行运算并输出使能结果;所述时序模块,第一输入端与所述比较模块的输出端耦接,第二输入端与所述使能模块的输出端耦接,输出端与级联模块耦接,适于在一个时钟周期内将所述比较结果与所述使能结果进行与运算,并将与运算结果作为目标比较结果并输出至所述级联模块;级联模块,第一输入端与所述时序模块的输出端耦接,第二输入端与上一级匹配单元的级联模块的输出端耦接,输出端与下一级匹配单元的第二输入端耦接,适于将第i个匹配单元的匹配结果输出至所述下一级匹配单元的级联模块。可选的,所述使能模块包括:前驱使能电路、后驱使能电路以及使能选择电路,其中:所述前驱使能电路,用于接收第i-1级匹配单元输出的匹配结果,将所述第i-1级匹配单元输出的匹配结果作为前驱使能信号并输出;所述后驱使能电路,用于获取所述第i个匹配单元对应的匹配结果,将所述第i个匹配单元对应的匹配结果作为后驱使能信号并输出;所述使能选择电路,分别接收所述前驱使能信号以及所述后驱使能信号,输出使能结果以确定所述使能模块是否使能。可选的,所述比较模块的第一输入端与所述比较模块的第二输入端输入的字符的格式均为8位ASCII码。可选的,所述控制装置,适于在第i个时钟周期,向所述匹配装置输入所述待匹配的字符串中的第i个字符;1≤i≤N。与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:控制装置根据目标正则表达式的长度,选取相应个数的匹配单元以及相应个数的存储单元,将目标正则表达式写入至M个存储单元。将待匹配的字符串依次输入至M个存储单元,实现正则表达式的匹配。在执行正则表达式匹配的过程中,只需要选取相应个数的匹配单元以及存储单元即可,其他空闲的匹配单元以及存储单元无需参与本次正则表达式的匹配,因此可以减少正则表达式处理系统进行匹配时的所需使用的资源,提高系统的运行效率。附图说明图1是本专利技术实施例中的一种正则表达式匹配系统的结构示意图;图2是本专利技术实施例中的一种匹配单元的结构示意图。具体实施方式在使用硬件执行正则表达式的匹配时,采用可重构系统构建正则表达式处理系统。现有技术中,通常采用静态可重构系统构建正则表达式处理系统。然而,静态可重构系统构建的正则表达式处理系统进行正则表达式匹配时所需使用的资源较多,运行效率较低。在本专利技术实施例中,控制装置根据目标正则表达式的长度,选取相应个数的匹配单元以及相应个数的存储单元,将目标正则表达式写入至M个存储单元。将待匹配的字符串依次输入至M个存储单元,从而实现正则表达式的匹配。在执行正则表达式匹配的过程中,只需要选取相应个数的匹配单元以及存储单元即可,其他空闲的匹配单元以及存储单元无需参与本次正则表达式的匹配,因此可以减少正则表达式处理系统进行匹配时的所需使用的资源,提高系统的运行效率。为使本专利技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。参照图1,本专利技术实施例提供了一种正则表达式匹配系统,包括:控制装置11以及匹配装置12,其中:匹配装置12包括N个匹配单元121,且每一个匹配单元121存在一一对应的存储单元。例如,第一个匹配单元包括对应的存储单元1,第二个匹配单元包括对应的存储单元2。在具体实施中,控制装置11可以与匹配装置12耦接。控制装置11可以根据目标正则表达式,向匹配装置12中的M个存储单元中均写入一个字符;M为目标正则表达式的长度,且1≤M≤N。匹配装置12,可以对M个存储单元中所存储的M个字符与待匹配的字符串进行一一比对,并输出相应的比较结果。在实际应用中可知,任何一个正则表达式均可以分解为连续的子表达式以进行匹配。在本专利技术实施例中,控制装置11可以将正则表达式“ab*c”分解“a”、“b*”以及“c”三个连续的子表达式,含有“a”、“b”以及“c”三个字符。将上述三个字符分配给三个匹配单元。根据字符及其对应的特殊符号,控制装置11可以在三个匹配单元对应的存储单元中,分别配置相应的配置信息。在具体实施中,控制装置可以向匹配装置输入待匹配的字符串,由匹配装置根据已经存储的目标正则表达式,将目标正则表达式与待匹配的字符串进行比较,以获取相应的比较结果。下面对本专利技术实施例中提供的匹配单元121进行说明。参照图2,给出了本专利技术实施例中的一种匹配单元121的结构示意图。在具体实施中,针对N个匹配单元中的第i个匹配单元,可以包括:比较模块21、使能模块22、时序模块23以及级联模块24,其中:比较模块21的第一输入端可以与其一一对应的存储单元耦接,适于输入对应存储单元中存储的字符;比较器的第二输入端输入待匹配的字符串中的第i个字符;比较器的输出端与时序模块23耦接,适于对第一输入端的输入与第二输入端的输入进行比较,并将得到的比较结果输出至时序模块23;使能模块22,适于接收上一级匹配单元所输出的前驱使能信号,以及获取下一级匹配单元的后驱使能信号,对前驱使能信号和本文档来自技高网...

【技术保护点】
1.一种正则表达式匹配系统,其特征在于,包括:控制装置以及匹配装置,其中:所述匹配装置包括N个匹配单元,每一个匹配单元中存在一一对应的存储单元;/n所述控制装置,与所述匹配装置耦接,适于根据目标正则表达式,向所述匹配装置中的M个存储单元均写入一个字符;M为所述目标正则表达式的长度,且1≤M≤N;/n所述匹配装置,适于将所述M个存储单元中所存储的M个字符与待匹配的字符串进行一一比对,并输出相应的比较结果。/n

【技术特征摘要】
1.一种正则表达式匹配系统,其特征在于,包括:控制装置以及匹配装置,其中:所述匹配装置包括N个匹配单元,每一个匹配单元中存在一一对应的存储单元;
所述控制装置,与所述匹配装置耦接,适于根据目标正则表达式,向所述匹配装置中的M个存储单元均写入一个字符;M为所述目标正则表达式的长度,且1≤M≤N;
所述匹配装置,适于将所述M个存储单元中所存储的M个字符与待匹配的字符串进行一一比对,并输出相应的比较结果。


2.如权利要求1所述的正则表达式匹配系统,其特征在于,所述N个匹配单元中的第i个匹配单元,包括:
比较模块,第一输入端与其一一对应的存储单元耦接,适于输入所述对应的存储单元中存储的字符;第二输入端输入所述待匹配的字符串中的第i个字符;输出端与时序模块耦接,适于对所述第一输入端的输入与所述第二输入端的输入进行比较,并将得到的比较结果输出至所述时序模块;
使能模块,适于接收上一级匹配单元输出的前驱使能信号,以及获取输入至下一级匹配单元的后驱使能信号,进行运算并输出使能结果;
所述时序模块,第一输入端与所述比较模块的输出端耦接,第二输入端与所述使能模块的输出端耦接,输出端与级联模块耦接,适于在一个时钟周期内将所述比较结果与所述使能结果进行与运算,并将与运...

【专利技术属性】
技术研发人员:丰震昊陈垦王韬徐烈伟俞剑陈宁
申请(专利权)人:上海复旦微电子集团股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1