CN112052413B - Url模糊匹配方法、装置和系统 - Google Patents
Url模糊匹配方法、装置和系统 Download PDFInfo
- Publication number
- CN112052413B CN112052413B CN202010888564.9A CN202010888564A CN112052413B CN 112052413 B CN112052413 B CN 112052413B CN 202010888564 A CN202010888564 A CN 202010888564A CN 112052413 B CN112052413 B CN 112052413B
- Authority
- CN
- China
- Prior art keywords
- matched
- matching
- segment
- character
- character string
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000011218 segmentation Effects 0.000 claims abstract description 90
- 238000010276 construction Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 230000014509 gene expression Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012550 audit Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-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/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种URL模糊匹配方法、装置和系统,根据模糊匹配规则,构建有向无环图;将URL字符串分为至少一段待匹配字符串;将每个待匹配字符串分别与有向无环图中对应的匹配规则段匹配,确定段匹配结果;将每个待匹配字符串对应的段匹配结果存储在对应的段匹配结果集合中;分段遍历模糊匹配规则,若模糊匹配规则中的分段规则都存在于对应的段匹配结果集合中,将模糊匹配规则作为目标匹配结果。这样,只需遍历一遍URL字符串,根据有向无环图确定URL字符串的段匹配结果集合,再遍历所有模糊匹配规则的所有分段规则即可确定目标匹配结果,字符串段数一般小于字符串字符数,模糊匹配规则较多时,能优化匹配路径速度,提高模糊匹配效率。
Description
技术领域
本发明涉及模糊匹配技术领域,具体涉及一种URL模糊匹配方法、装置和系统。
背景技术
URL的分类匹配主要用于网站开发的路由阶段、网站流量审计的包预处理阶段。网站开发通常需要建立一个路由表,将不同的URL输入到路由表中,给不同URL的请求分配相应的后台业务逻辑;网站流量审计中,由于不同URL对应的业务不同,有时需要先对流量包进行URL分类,针对不同类型的URL,使用不同的审计方法处理网站流量。
URL的分类匹配主要分为精确匹配和模糊匹配。匹配URL的过程通常是预先在系统中由一组规则共同构成一个集合,在这个集合中找到所有当前URL符合的规则。精确匹配要求URL与规则完全一致,通常使用哈希表作为数据结构,哈希表可以快速搜索键值对来精确匹配某个值是否在当前哈希表中。通过建立好的一批规则哈希表,可以很快得出URL是否与这一批规则中的某一条规则完全一致。
模糊匹配相关的规则包含一些通配符,可以通过人工设置不同的规则将结构类似的URL聚类到一起。现有技术中,模糊匹配通常使用正则表达式完成模糊匹配。但是通过正则表达式进行模糊匹配需要将每个正则表达式规则均遍历一遍URL字符串,每增加一条模糊匹配规则,则需要多匹配一次URL字符串,导致模糊匹配的效率较低。
发明内容
有鉴于此,本发明的目的在于提供一种URL模糊匹配方法、装置和系统,以解决现有技术中通过正则表达式进行模糊匹配需要将每个正则表达式规则均遍历一遍URL字符串,每增加一条模糊匹配规则,则需要多匹配一次URL字符串,导致模糊匹配的效率较低的问题。
为实现以上目的,本发明采用如下技术方案:
一种URL模糊匹配方法,包括:
根据预先设置的模糊匹配规则,构建有向无环图;
对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;
将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果;
将每个所述待匹配字符串对应的段匹配结果存储在所述待匹配字符串对应的段匹配结果集合中,得到每个所述待匹配字符串对应的段匹配结果集合;
对所述模糊匹配规则进行分段遍历,判断所述模糊匹配规则中的每一段分段规则是否都存在于对应的所述段匹配结果集合中;
若所述模糊匹配规则中的每一段分段规则都存在于对应的所述段匹配结果集合中,则将所述模糊匹配规则作为目标匹配结果;
将所有所述目标匹配结果输出。
进一步地,上述URL模糊匹配方法中,所述模糊匹配规则的数量至少为一条;
所述根据预先设置的模糊匹配规则,构建有向无环图,包括:
将每条所述模糊匹配规则进行分段处理,得到携带有所述分段标识的分段规则;
将所有分段规则根据所述分段标识分别载入到预设的图模型中,构建出所述有向无环图。
进一步地,上述URL模糊匹配方法中,所述将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果,包括:
确定所有所述待匹配字符串中当前待匹配字符串的所有携带字节标识的字符;
将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果;
判断所有所述待匹配字符串是否都完成字符串匹配;
若是,则获取每个所述待匹配字符串对应的段匹配结果;
若否,则将所述当前待匹配字符串的下一个待匹配字符串作为所述当前待匹配字符串,继续进行字符串匹配。
进一步地,上述URL模糊匹配方法中,所述将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果,包括:
确定所述当前待匹配字符串的携带字节标识的当前字符、已匹配字符和目标规则字符;
确定所述有向无环图中所述当前待匹配字符串携带的分段标识对应的匹配规则段中,与所述当前字符携带的所述字节标识相对应且与所述目标规则字符相关联的所有规则字符;
若所有所述规则字符中存在通配符,则将所述已匹配字符与所述通配符组合,作为所述段匹配结果;
若所有所述规则字符中存在与所述当前字符相同的目标规则字符,将所述已匹配字符与所述目标规则字符的组合作为所述已匹配字符;
判断所述当前字符是否为所述当前字符所在的所述当前待匹配字符串中的最后一个字符;
若所述当前字符不是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,将所述当前待匹配字符串中所述当前字符的下一个字符作为所述当前字符,从而继续进行字符匹配;
若所述当前字符是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,且所述目标规则字符为所述当前待匹配字符串对应的所述匹配规则段中的最后一个字符,则将所述已匹配字符作为所述段匹配结果。
进一步地,上述URL模糊匹配方法中,所述确定所述有向无环图中所述当前待匹配字符串携带的分段标识对应的匹配规则段中,与所述当前字符携带的所述字节标识相对应且与所述目标规则字符相关联的所有规则字符之后,还包括:
若所有所述规则字符中既不存在所述通配符,也不存在与所述当前字符相同的所述目标规则字符,则停止对所述当前字符所在的所述当前待匹配字符串进行字符匹配。
进一步地,上述URL模糊匹配方法中,所述将所有所述目标匹配结果输出,包括:
将所有所述目标匹配结果按照匹配范围的大小分别加入到预设的输出序列中,以使所有所述目标匹配结果按照匹配范围的大小输出。
本发明还提供一种URL模糊匹配装置,包括:
构建模块,用于根据预先设置的模糊匹配规则,构建有向无环图;
字符串分段模块,用于对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;
匹配模块,用于将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果;
存储模块,用于将每个所述待匹配字符串对应的段匹配结果存储在所述待匹配字符串对应的段匹配结果集合中,得到每个所述待匹配字符串对应的段匹配结果集合;
规则遍历模块,用于对所述模糊匹配规则进行分段遍历,判断所述模糊匹配规则中的每一段分段规则是否都存在于对应的所述段匹配结果集合中;
确定模块,用于若所述模糊匹配规则中的每一段分段规则都存在于对应的所述段匹配结果集合中,则将所述模糊匹配规则作为目标匹配结果;
输出模块,用于将所有所述目标匹配结果输出。
进一步地,上述URL模糊匹配装置中,所述模糊匹配规则的数量至少为一条;
所述构建模块,具体用于将每条所述模糊匹配规则进行分段处理,得到携带有所述分段标识的分段规则;
将所有分段规则根据所述分段标识分别载入到预设的图模型中,构建出所述有向无环图。
进一步地,上述URL模糊匹配装置中,所述匹配模块包括:字符确定单元、字符匹配单元、判断单元、获取单元和字符串确定单元;
所述字符确定单元,用于确定所有所述待匹配字符串中当前待匹配字符串的所有携带字节标识的字符;
所述字符匹配单元,用于将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果;
所述判断单元,用于判断所有所述待匹配字符串是否都完成字符串匹配;
所述获取单元,用于若是,则获取每个所述待匹配字符串对应的段匹配结果;
所述字符串确定单元,用于若否,则将所述当前待匹配字符串的下一个待匹配字符串作为所述当前待匹配字符串,继续进行字符串匹配。
本发明还提供一种URL模糊匹配系统,包括:处理器以及与所述处理器相连的存储器;
所述存储器用于存储计算机程序,所述计算机程序至少用于执行上述URL模糊匹配方法;
所述处理器用于调用并执行所述计算机程序。
一种URL模糊匹配方法、装置和系统,根据预先设置的模糊匹配规则,构建有向无环图;对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;将每个待匹配字符串分别与有向无环图中分段标识对应的匹配规则段进行匹配,确定每个待匹配字符串对应的段匹配结果;将每个待匹配字符串对应的段匹配结果存储在待匹配字符串对应的段匹配结果集合中,得到每个待匹配字符串对应的段匹配结果集合;对模糊匹配规则进行分段遍历,判断模糊匹配规则中的每一段分段规则是否都存在于对应的段匹配结果集合中;若模糊匹配规则中的每一段分段规则都存在于对应的段匹配结果集合中,则将模糊匹配规则作为目标匹配结果;将所有目标匹配结果输出。采用本发明的技术方案,只需要遍历一遍URL字符串,根据构建的有向无环图确定URL字符串中每个待匹配字符串的段匹配结果集合,再遍历所有模糊匹配规则的每一段分段规则即可确定目标匹配结果,字符串的段数一般情况下是小于字符串的字符数,因此,在模糊匹配规则较多时,能够优化匹配路径速度,提高模糊匹配的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的URL模糊匹配方法一种实施例提供的第一个流程图;
图2是本发明的URL模糊匹配方法一种实施例提供的第二个流程图;
图3是本发明的URL模糊匹配方法一种实施例提供的第三个流程图;
图4是本发明的URL模糊匹配方法一种实施例提供的一个有向无环图;
图5是本发明的URL模糊匹配装置一种实施例提供的结构示意图;
图6是本发明的URL模糊匹配系统一种实施例提供的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
图1是本发明的URL模糊匹配方法一种实施例提供的第一个流程图,如图1所示,本实施例的URL模糊匹配方法具体包括如下步骤:
S101、根据预先设置的模糊匹配规则,构建有向无环图;
本实施例中,用户可以预先设置针对URL进行模糊匹配的模糊匹配规则,以便根据模糊匹配规则实现对URL的分类。获取到用户预先设置的模糊匹配规则后,根据该模糊匹配规则,构建有向无环图。其中,本实施例中的模糊匹配规则的数量至少为一条,构建有向无环图的具体步骤如下:
第一,将每条模糊匹配规则进行分段处理,得到携带有分段标识的分段规则;
对模糊匹配规则进行分段处理可以依据分段符分段,其中分段符可以为“/”。将每条模糊匹配规则均进行分段处理后,每条模糊匹配规则均会分为至少一段携带分段标识的分段规则。
第二,将所有分段规则根据分段标识分别载入到预设的图模型中,构建出有向无环图。
本实施例可以预先设置图模型,将上述分段后的所有分段规则均根据其分段标识载入到图模型中,便能构建出有向无环图。
图4是本发明的URL模糊匹配方法一种实施例提供的一个有向无环图,如图4所示,在一种具体实施例中,假设所有的模糊匹配规则为:/aa/*、/aa/?/t、/aa/a*、/aa/a?/t、/aa/a?、/aa/b?/t、/aa/abcxxx/t、/ab/ab?/t、/ab/ab*、/ab/bcdxxx/t、/bc/bcdxxx/t。上述有11条模糊匹配规则,/aa/*可以分为两段分段规则,分别为携带第一段标识的“aa”和携带第二段标识的“*”;/aa/?/t的分段规则包括:携带第一段标识的“aa”、携带第二段标识的“?”和携带第三段标识的“t”。以此类推,均可确定上述所有模糊匹配规则的分段规则,再根据所有的分段规则构建出如图4所示的有向无环图,该有向无环图分为三段,每段之间均以分段符“/”分隔。
模糊匹配规则中的“*”和“?”为通配符,其中,“*”可以匹配任意字符,直至字符串结束,而“?”也可匹配任意字符,但仅可匹配到当前分段结束。
S102、对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;
对于需要进行模糊匹配的URL字符串,首先需要对该URL字符串进行分段处理,从而得到至少一段待匹配字符串,并且每段待匹配字符串均携带有分段标识。
在一个具体实施例中,假设URL字符串为/ab/abcxxx/t,那么依据分段符“/”进行分段处理,可以将该URL字符串分为三段待匹配字符串,分别为携带第一段标识的“ab”、携带第二段标识的“abcxxx”和携带第三段标识的“t”。
S103、将每个待匹配字符串分别与有向无环图中分段标识对应的匹配规则段进行匹配,确定每个待匹配字符串对应的段匹配结果;
确定了URL字符串的所有待匹配字符串后,还需要确定有向无环图中与待匹配字符串携带的分段标识相对应的匹配规则段,每个待匹配字符串需要与其对应的匹配规则段进行匹配,从而确定每个待匹配字符串对应的段匹配结果,其中,每个待匹配字符串对应的段匹配结果数量不定,可以仅包括一个段匹配结果,也可以包括多个段匹配结果,还可以为零个段匹配结果。
例如,在上述具体实施例中,携带第一段标识的“ab”需要与图4中第一段的匹配规则段进行匹配;携带第二段标识的“abcxxx”需要与图4中第二段的匹配规则段进行匹配;携带第三段标识的“t”需要与图4中第三段的匹配规则段进行匹配。其中,每一段的匹配规则段均是根据携带该段对应的分段标识的分段规则构建出的。
S104、将每个待匹配字符串对应的段匹配结果存储在待匹配字符串对应的段匹配结果集合中,得到每个待匹配字符串对应的段匹配结果集合;
通过上述匹配,将每个待匹配字符串匹配后得到的段匹配结果存储在该待匹配字符串对应的段匹配结果集合中,从而得到每个待匹配字符串对应的段匹配结果集合。
S105、对模糊匹配规则进行分段遍历,判断模糊匹配规则中的每一段分段规则是否都存在于对应的段匹配结果集合中;
对所有的模糊匹配规则进行分段遍历,判断每条模糊匹配规则中的每一段分段规则是否都存在于该段对应的段匹配结果集合中,也就是模糊匹配规则中的每一段分段规则是否都能在该段对应的段匹配结果集合中找到相同的字符串。如果一条模糊匹配规则中的每一段分段规则均能在该段对应的段匹配结果集合中找到相同的字符,则说明本条模糊匹配规则匹配成功,即URL字符串匹配上本条模糊匹配规则;相反地,则说明本条模糊匹配规则匹配失败,即URL字符串并未匹配上本条模糊匹配规则。本实施例中,需要对每条模糊匹配规则均进行遍历。
S106、若模糊匹配规则中的每一段分段规则都存在于对应的段匹配结果集合中,则将模糊匹配规则作为目标匹配结果;
通过上述判断,如果模糊匹配规则中的每一段分段规则都存在于对应的段匹配结果集合中,则将该条模糊匹配规则作为目标匹配结果。其中,可以存在多条模糊匹配结果均匹配成功的情况,也就是说目标匹配结果可以有多个。
S107、将所有目标匹配结果输出。
将上述确定的所有目标匹配结果均输出,具体的输出步骤为:将所有目标匹配结果按照匹配范围的大小分别加入到预设的输出序列中,以使所有目标匹配结果按照匹配范围的大小输出。其中,匹配范围越小,该目标匹配结果则越精确。本实施例优选采用匹配范围由大到小的顺序加入输出序列,这样输出的目标匹配结果也是由模糊到精确。
本实施例中,如果URL字符串长度为n,按分段符“/”分的段数为a,模糊匹配规则数为m,那么现有技术中,每条模糊匹配规则数均需要遍历一遍URL字符串的手段的算法时间复杂度为O(m*n),本申请方案的只需遍历一遍URL字符串,从而获取各段的段匹配结果集合,再遍历所有的模糊匹配规则的每一段即可,因此本申请方案的算法时间复杂度为O(m*a+n),由于一般情况下,字符串长度n是大于分段数a的,因此,当模糊匹配规则数m越大,本申请方案相比于现有技术来说,算法时间复杂度越小。在模糊匹配规则较多时,本方案能够优化匹配路径速度,提高模糊匹配的效率。
本实施例的URL模糊匹配方法,根据预先设置的模糊匹配规则,构建有向无环图;对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;将每个待匹配字符串分别与有向无环图中分段标识对应的匹配规则段进行匹配,确定每个待匹配字符串对应的段匹配结果;将每个待匹配字符串对应的段匹配结果存储在待匹配字符串对应的段匹配结果集合中,得到每个待匹配字符串对应的段匹配结果集合;对模糊匹配规则进行分段遍历,若判断出模糊匹配规则中的每一段分段规则是否都存在于对应的段匹配结果集合中,则将模糊匹配规则作为目标匹配结果;将所有目标匹配结果输出。这样,只需要遍历一遍URL字符串,根据构建的有向无环图确定URL字符串中每个待匹配字符串的段匹配结果集合,再遍历所有模糊匹配规则的每一段分段规则即可确定目标匹配结果,字符串的段数一般情况下是小于字符串的字符数,因此,在模糊匹配规则较多时,能够优化匹配路径速度,提高模糊匹配的效率。
进一步地,图2是本发明的URL模糊匹配方法一种实施例提供的第二个流程图,如图2所示,本实施例的URL模糊匹配方法中,步骤S103将每个待匹配字符串分别与有向无环图中分段标识对应的匹配规则段进行匹配,确定每个待匹配字符串对应的段匹配结果,具体包括如下步骤:
S201、确定所有待匹配字符串中当前待匹配字符串的所有携带字节标识的字符;
确定了URL字符串的所有待匹配字符串后,确定所有待匹配字符串中当前待匹配字符串的所有携带字节标识的字符。其中,在进行第一次字符串匹配时,将分段标识为第一段标识的待匹配字符串作为当前待匹配字符串。
例如,如果URL字符串/ab/abcxxx/t的第一段标识的待匹配字符串“ab”为当前待匹配字符串,那么当前待匹配字符串的字符包括:携带第一字节标识的“a”和携带第二字节标识的“b”。
S202、将所有字符与有向无环图中当前待匹配字符串携带的分段标识对应的匹配规则段进行字符匹配,确定当前待匹配字符串对应的段匹配结果;
确定了当前待匹配字符串的所有字符后,再确定有向无环图中与当前待匹配字符串携带的分段标识相对应的匹配规则段,将所有字符分别与该匹配规则段进行匹配,从而确定当前待匹配字符串对应的段匹配结果。
S203、判断所有待匹配字符串是否都完成字符串匹配;若是,则执行步骤S204;若否,则执行步骤S205;
确定了确定当前待匹配字符串对应的段匹配结果后,需要判断URL字符串分段后的所有待匹配字符串是否都完成了字符串匹配,也就是说所有的待匹配字符串是否都作为当前待匹配字符串,将其包含的字符与对应的匹配规则段进行匹配过。如果是,则执行步骤S204;如果否,则执行步骤S205。
S204、获取每个待匹配字符串对应的段匹配结果;
如果判断出所有待匹配字符串都完成字符串匹配,则说明URL字符串完成各个待匹配字符串的模糊匹配,获取每个待匹配字符串作为当前待匹配字符串时对应的段匹配结果,以便进行之后的存储段匹配结果,确定每个待匹配字符串对应的段匹配结果集合的步骤。
S205、将当前待匹配字符串的下一个待匹配字符串作为当前待匹配字符串,再继续执行步骤S201。
如果判断出所有待匹配字符串并没有全部都完成字符串匹配,则将当前待匹配字符串的下一个待匹配字符串作为当前待匹配字符串。例如,如果当前待匹配字符串为携带第一段标识的待匹配字符串,那么下一个待匹配字符串则为携带第二段标识的待匹配字符串。然后再继续执行步骤S201,以便对最新确定的当前待匹配字符串进行字符串匹配,直到URL字符串所有的待匹配字符串均完成字符串匹配为止。
进一步地,图3是本发明的URL模糊匹配方法一种实施例提供的第三个流程图,如图3所示,本实施例的URL模糊匹配方法中,步骤S202将所有字符与有向无环图中当前待匹配字符串携带的分段标识对应的匹配规则段进行字符匹配,确定当前待匹配字符串对应的段匹配结果,具体包括如下步骤:
S301、确定当前待匹配字符串的携带字节标识的当前字符、已匹配字符和目标规则字符;
确定了所有待匹配字符串中当前待匹配字符串的所有携带字节标识的字符后,再确定当前待匹配字符串的携带字节标识的当前字符和已匹配字符。其中,在进行第一次字符匹配时,将当前待匹配字符串中字节标识为第一字节标识的字符作为当前字符,已匹配字符为空,目标规则字符为“/”。
S302、确定有向无环图中当前待匹配字符串携带的分段标识对应的匹配规则段中,与当前字符携带的字节标识相对应且与目标规则字符相关联的所有规则字符;
确定了当前字符、已匹配字符和目标规则字符后,还需要确定有向无环图中与当前待匹配字符串携带的分段标识相对应的匹配规则段中,与当前字符携带的字节标识相对应且与目标规则字符相关联的所有规则字符。
在上述具体实施例中,例如,如果URL字符串/ab/abcxxx/t的第一段标识的待匹配字符串“ab”为当前待匹配字符串,那么当前待匹配字符串的字符包括:携带第一字节标识的“a”和携带第二字节标识的“b”。如果当前字符为携带第一字节标识的“a”,匹配规则段为图4中所示的第一段,第一段中与当前字符携带的字节标识(即第一字节标识)相对应且与目标规则字符“/”相关联(即图4中所示的与目标规则字符“/”相连接)的所有规则字符为“a”和“b”。
再例如,如果URL字符串/ab/abcxxx/t的第二段标识的待匹配字符串“abcxxx”为当前待匹配字符串,那么当前待匹配字符串的字符包括:携带第一字节标识的“a”、携带第二字节标识的“b”、携带第三字节标识的“c”、携带第四字节标识的“x”、携带第五字节标识的“x”和携带第六字节标识的“x”。如果当前字符为携带第一字节标识的“a”,匹配规则段为图4中所示的第二段,第二段中与当前字符的字节标识(即第一字节标识)相对应且与目标规则字符“/”相关联(即图4中所示的与目标规则字符“/”相连接)的所有规则字符为“*”、“?”、“a”和“b”。
S303、若所有规则字符中存在通配符,则将已匹配字符与通配符组合,作为段匹配结果;
确定了与当前字符携带的字节标识相对应的所有规则字符后,如果所有规则字符中存在通配符,则将已匹配字符与通配符组合,作为段匹配结果。
例如上述具体实施例中,第二段中与携带第一字节标识的当前字符“a”相对应的所有规则字符为“*”、“?”、“a”和“b”,所有规则字符中存在通配符,则将已匹配字符与通配符组合,作为段匹配结果,此时为携带第二段标识的当前待匹配字符串第一次的字符匹配,因此已匹配字符为空,则已匹配字符与通配符组合后的段匹配结果为通配符,即段匹配结果为“*”和“?”两个。
S304、若所有规则字符中存在与当前字符相同的目标规则字符,将已匹配字符与目标规则字符的组合作为已匹配字符;
如果所有规则字符中存在与当前字符相同的目标规则字符,则将已匹配字符与目标规则字符的组合作为已匹配字符。
例如上述具体实施例中,第二段中与携带第一字节标识的当前字符“a”相对应的所有规则字符为“*”、“?”、“a”和“b”,所有规则字符中存在与当前字符相同的目标规则字符,该目标规则字符为“a”。则将已匹配字符与目标规则字符的组合作为已匹配字符,此时为携带第二段标识的当前待匹配字符串第一次的字符匹配,因此已匹配字符为空,则已匹配字符与通配符组合后的已匹配字符为目标规则字符,即最新确定的已匹配字符为“a”。
S305、判断当前字符是否为当前字符所在的当前待匹配字符串中的最后一个字符;若是,则执行步骤S306;若否,则执行步骤S307;
通过上述步骤确定了段匹配结果或者已匹配字符后,还需要判断当前字符是否为当前字符所在的当前待匹配字符串中的最后一个字符,如果是,则执行步骤S306,如果不是,则执行步骤S307。
S306、若目标规则字符为当前待匹配字符串对应的匹配规则段中的最后一个字符,则将已匹配字符作为段匹配结果;
如果判断出当前字符为当前字符所在的当前待匹配字符串中的最后一个字符,则说明当前待匹配字符串中的所有字符均完成字符匹配,那么在当前待匹配字符串中的所有字符均完成字符匹配的同时,如果上述步骤确定的目标规则字符也为当前待匹配字符串携带的分段标识对应的匹配规则段中的最后一个字符(即匹配规则段中目标规则字符所在分段规则中的最后一个字符),则将上述确定的已匹配字符作为段匹配结果。然后获取上述确定的当前待匹配字符串对应的所有段匹配结果后,再对其他待匹配字符串进行字符串匹配。
S307、将当前待匹配字符串中当前字符的下一个字符作为当前字符,再继续执行步骤S301。
如果判断出当前字符并不是当前字符所在的当前待匹配字符串中的最后一个字符,则将当前待匹配字符串中当前字符的下一个字符作为当前字符,例如,如果当前字符为携带第一字节标识的字符,那么下一个字符则为携带第二字节标识的字符。然后再继续执行步骤S301,以便对最新确定的当前字符进行字符匹配,直到当前待匹配字符串中所有的字符均完成字符匹配为止。
例如上述具体实施例中,URL字符串/ab/abcxxx/t的第二段标识的待匹配字符串“abcxxx”为当前待匹配字符串,当前待匹配字符串的字符包括:携带第一字节标识的“a”、携带第二字节标识的“b”、携带第三字节标识的“c”、携带第四字节标识的“x”、携带第五字节标识的“x”和携带第六字节标识的“x”。第二段中与携带第一字节标识的当前字符“a”相对应的所有规则字符为“*”、“?”、“a”和“b”,且确定了目标规则字符为“a”,已匹配字符为“a”。那么将最新确定的当前字符为携带第二字节标识的“b”。然后再执行上述字符匹配的步骤,确定当前字符为“b”,已匹配字符为“a”,目标规则字符为“a”。确定与第二字节标识相对应且与目标规则字符“a”相关联的所有规则字符为“*”、“?”和“b”。所有规则字符中存在通配符,已匹配字符与通配符的组合“a*”和“a?”作为段匹配结果;所有规则字符中还存在与当前字符“b”相同的新的目标规则字符“b”,将已匹配字符与目标规则字符的组合“ab”作为新的已匹配字符,然后再判断出当前字符不是最后一个字符,然后再确定新的当前字符,继续对当前字符进行字符匹配,最终循环到最后一个字符时,得到的段匹配结果还有“ab*”和“ab?”。最后一个字符为当前字符时,得到的已匹配字符为“abcxxx”,目标规则字符为“x”且当前的目标规则字符为匹配规则段中的最后一个字符,则将该已匹配字符“abcxxx”作为段匹配结果。最终,URL字符串/ab/abcxxx/t的第二段标识的待匹配字符串“abcxxx”对应的段匹配结果包括“*”、“?”、“a*”、“a?”、“ab*”、“ab?”和“abcxxx”。
进一步地,确定有向无环图中当前待匹配字符串携带的分段标识对应的匹配规则段中,与当前字符携带的字节标识相对应的所有规则字符之后,如果所有规则字符中既不存在通配符,也不存在与当前字符相同的目标规则字符,则停止对当前字符所在的当前待匹配字符串进行字符匹配。
以下简述一个具体实例,以说明本实施例的方案:
假设所有的模糊匹配规则为:/aa/*、/aa/?/t、/aa/a*、/aa/a?/t、/aa/a?、/aa/b?/t、/aa/abcxxx/t、/ab/ab?/t、/ab/ab*、/ab/bcdxxx/t、/bc/bcdxxx/t;根据所有的模糊匹配规则构建的有向无环图如图4所示。
当URL字符串为/ab/abcxxx/t时:
通过上述实施例具体步骤,确定URL字符串携带第一段标识的待匹配字符串“ab”对应的段匹配结果集合中包括“ab”;URL字符串携带第二段标识的待匹配字符串“abcxxx”对应的段匹配结果集合中包括“*”、“?”、“a*”、“a?”、“ab*”、“ab?”、“abcxxx”(匹配范围由大到小);URL字符串携带第三段标识的待匹配字符串“t”对应的段匹配结果集合中包括“t”。
对上述所有模糊匹配规则进行遍历,确定模糊匹配规则“/ab/ab*”和“/ab/ab?/t”中的每一段分段规则均在其对应的段匹配结果集合中存在相同的字符串,因此,目标匹配结果包括“/ab/ab*”和“/ab/ab?/t”,按照匹配范围由大到小输入到输出序列中,最后按照匹配范围由大到小输出目标匹配结果。
当URL字符串为/aa/abcxxx/t时:
第一段标识的待匹配字符串“aa”对应的段匹配结果集合中包括“aa”;第二段标识的待匹配字符串“abcxxx”对应的段匹配结果集合中包括“*”、“?”、“a*”、“a?”、“ab*”、“ab?”、“abcxxx”(匹配范围由大到小);第三段标识的待匹配字符串“t”对应的段匹配结果集合中包括“t”。目标匹配结果为“/aa/*”、“/aa/?/t”、“/aa/a*”、“/aa/a?/t”、“/aa/ab*”、“/aa/ab?/t”、“/aa/abcxxx/t”(匹配范围由大到小)。
当URL字符串为/aa/axxxxx/t时:
第一段标识的待匹配字符串“aa”对应的段匹配结果集合中包括“aa”;第二段标识的待匹配字符串“axxxxx”对应的段匹配结果集合中包括“*”、“?”、“a*”、“a?”(匹配范围由大到小);第三段标识的待匹配字符串“t”对应的段匹配结果集合中包括“t”。目标匹配结果为“/aa/*”、“/aa/?/t”、“/aa/a*”、“/aa/a?/t”(匹配范围由大到小)。
为了更全面,对应于本发明实施例提供的URL模糊匹配方法,本申请还提供了URL模糊匹配装置。
图5是本发明的URL模糊匹配装置一种实施例提供的结构示意图,如图5所示,本实施例的URL模糊匹配装置包括:构建模块101、字符串分段模块102、匹配模块103、存储模块104、规则遍历模块105、确定模块106和输出模块107。
构建模块101,用于根据预先设置的模糊匹配规则,构建有向无环图;
字符串分段模块102,用于对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;
匹配模块103,用于将每个待匹配字符串分别与有向无环图中分段标识对应的匹配规则段进行匹配,确定每个待匹配字符串对应的段匹配结果;
存储模块104,用于将每个待匹配字符串对应的段匹配结果存储在待匹配字符串对应的段匹配结果集合中,得到每个待匹配字符串对应的段匹配结果集合;
规则遍历模块105,用于对模糊匹配规则进行分段遍历,判断模糊匹配规则中的每一段分段规则是否都存在于对应的段匹配结果集合中;
确定模块106,用于若模糊匹配规则中的每一段分段规则都存在于对应的段匹配结果集合中,则将模糊匹配规则作为目标匹配结果;
输出模块107,用于将所有目标匹配结果输出。
本实施例的URL模糊匹配装置,构建模块101根据预先设置的模糊匹配规则,构建有向无环图;字符串分段模块102对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;匹配模块103将每个待匹配字符串分别与有向无环图中分段标识对应的匹配规则段进行匹配,确定每个待匹配字符串对应的段匹配结果;存储模块104将每个待匹配字符串对应的段匹配结果存储在待匹配字符串对应的段匹配结果集合中,得到每个待匹配字符串对应的段匹配结果集合;规则遍历模块105对模糊匹配规则进行分段遍历,若判断出模糊匹配规则中的每一段分段规则是否都存在于对应的段匹配结果集合中,确定模块106则将模糊匹配规则作为目标匹配结果;输出模块107将所有目标匹配结果输出。这样,只需要遍历一遍URL字符串,根据构建的有向无环图确定URL字符串中每个待匹配字符串的段匹配结果集合,再遍历所有模糊匹配规则的每一段分段规则即可确定目标匹配结果,字符串的段数一般情况下是小于字符串的字符数,因此,在模糊匹配规则较多时,能够优化匹配路径速度,提高模糊匹配的效率。
进一步地,本实施例的URL模糊匹配装置中,模糊匹配规则的数量至少为一条;构建模块101,具体用于将每条模糊匹配规则进行分段处理,得到携带有分段标识的分段规则;将所有分段规则根据分段标识分别载入到预设的图模型中,构建出有向无环图。
进一步地,本实施例的URL模糊匹配装置中,匹配模块103包括:字符确定单元、字符匹配单元、判断单元、获取单元和字符串确定单元。
字符确定单元,用于确定所有待匹配字符串中当前待匹配字符串的所有携带字节标识的字符;
字符匹配单元,用于将所有字符与有向无环图中当前待匹配字符串携带的分段标识对应的匹配规则段进行字符匹配,确定当前待匹配字符串对应的段匹配结果;
判断单元,用于判断所有待匹配字符串是否都完成字符串匹配;
获取单元,用于若是,则获取每个待匹配字符串对应的段匹配结果;
字符串确定单元,用于若否,则将当前待匹配字符串的下一个待匹配字符串作为当前待匹配字符串,继续进行字符串匹配。
进一步地,本实施例的URL模糊匹配装置中,字符匹配单元,具体用于确定当前待匹配字符串的携带字节标识的当前字符、已匹配字符和目标规则字符;
确定有向无环图中当前待匹配字符串携带的分段标识对应的匹配规则段中,与当前字符携带的字节标识相对应且与目标规则字符相关联的所有规则字符;
若所有规则字符中存在通配符,则将已匹配字符与通配符组合,作为段匹配结果;
若所有规则字符中存在与当前字符相同的目标规则字符,将已匹配字符与目标规则字符的组合作为已匹配字符;
判断当前字符是否为当前字符所在的当前待匹配字符串中的最后一个字符;
若当前字符不是当前字符所在的当前待匹配字符串中的最后一个字符,将当前待匹配字符串中当前字符的下一个字符作为当前字符,从而继续进行字符匹配;
若当前字符是当前字符所在的当前待匹配字符串中的最后一个字符,且目标规则字符为当前待匹配字符串对应的匹配规则段中的最后一个字符,则将已匹配字符作为段匹配结果。
进一步地,字符匹配单元,还用于若所有规则字符中既不存在通配符,也不存在与当前字符相同的目标规则字符,则停止对当前字符所在的当前待匹配字符串进行字符匹配。
进一步地,本实施例的URL模糊匹配装置中,输出模块107,具体用于将所有目标匹配结果按照匹配范围的大小分别加入到预设的输出序列中,以使所有目标匹配结果按照匹配范围的大小输出。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是本发明的URL模糊匹配系统一种实施例提供的结构示意图,如图6所示,本实施例的URL模糊匹配系统包括处理器21以及与处理器21相连的存储器22。
存储器22用于存储计算机程序,所述计算机程序至少用于执行上述实施例的URL模糊匹配方法;
处理器21用于调用并执行所述计算机程序。
本实施例的URL模糊匹配系统,只需要遍历一遍URL字符串,根据构建的有向无环图确定URL字符串中每个待匹配字符串的段匹配结果集合,再遍历所有模糊匹配规则的每一段分段规则即可确定目标匹配结果,字符串的段数一般情况下是小于字符串的字符数,因此,在模糊匹配规则较多时,能够优化匹配路径速度,提高模糊匹配的效率。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (7)
1.一种URL模糊匹配方法,其特征在于,包括:
根据预先设置的模糊匹配规则,构建有向无环图;
对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;
将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果;
将每个所述待匹配字符串对应的段匹配结果存储在所述待匹配字符串对应的段匹配结果集合中,得到每个所述待匹配字符串对应的段匹配结果集合;
对所述模糊匹配规则进行分段遍历,判断所述模糊匹配规则中的每一段分段规则是否都存在于对应的所述段匹配结果集合中;
若所述模糊匹配规则中的每一段分段规则都存在于对应的所述段匹配结果集合中,则将所述模糊匹配规则作为目标匹配结果;
将所有所述目标匹配结果输出;
其中,所述将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果,包括:
确定所有所述待匹配字符串中当前待匹配字符串的所有携带字节标识的字符;
将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果;
判断所有所述待匹配字符串是否都完成字符串匹配;
若是,则获取每个所述待匹配字符串对应的段匹配结果;
若否,则将所述当前待匹配字符串的下一个待匹配字符串作为所述当前待匹配字符串,继续进行字符串匹配;
所述将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果,包括:
确定所述当前待匹配字符串的携带字节标识的当前字符、已匹配字符和目标规则字符;
确定所述有向无环图中所述当前待匹配字符串携带的分段标识对应的匹配规则段中,与所述当前字符携带的所述字节标识相对应且与所述目标规则字符相关联的所有规则字符;
若所有所述规则字符中存在通配符,则将所述已匹配字符与所述通配符组合,作为所述段匹配结果;
若所有所述规则字符中存在与所述当前字符相同的目标规则字符,将所述已匹配字符与所述目标规则字符的组合作为所述已匹配字符;
判断所述当前字符是否为所述当前字符所在的所述当前待匹配字符串中的最后一个字符;
若所述当前字符不是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,将所述当前待匹配字符串中所述当前字符的下一个字符作为所述当前字符,从而继续进行字符匹配;
若所述当前字符是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,且所述目标规则字符为所述当前待匹配字符串对应的所述匹配规则段中的最后一个字符,则将所述已匹配字符作为所述段匹配结果。
2.根据权利要求1所述的URL模糊匹配方法,其特征在于,所述模糊匹配规则的数量至少为一条;
所述根据预先设置的模糊匹配规则,构建有向无环图,包括:
将每条所述模糊匹配规则进行分段处理,得到携带有所述分段标识的分段规则;
将所有分段规则根据所述分段标识分别载入到预设的图模型中,构建出所述有向无环图。
3.根据权利要求1所述的URL模糊匹配方法,其特征在于,所述确定所述有向无环图中所述当前待匹配字符串携带的分段标识对应的匹配规则段中,与所述当前字符携带的所述字节标识相对应且与所述目标规则字符相关联的所有规则字符之后,还包括:
若所有所述规则字符中既不存在所述通配符,也不存在与所述当前字符相同的所述目标规则字符,则停止对所述当前字符所在的所述当前待匹配字符串进行字符匹配。
4.根据权利要求1所述的URL模糊匹配方法,其特征在于,所述将所有所述目标匹配结果输出,包括:
将所有所述目标匹配结果按照匹配范围的大小分别加入到预设的输出序列中,以使所有所述目标匹配结果按照匹配范围的大小输出。
5.一种URL模糊匹配装置,其特征在于,包括:
构建模块,用于根据预先设置的模糊匹配规则,构建有向无环图;
字符串分段模块,用于对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;
匹配模块,用于将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果;
存储模块,用于将每个所述待匹配字符串对应的段匹配结果存储在所述待匹配字符串对应的段匹配结果集合中,得到每个所述待匹配字符串对应的段匹配结果集合;
规则遍历模块,用于对所述模糊匹配规则进行分段遍历,判断所述模糊匹配规则中的每一段分段规则是否都存在于对应的所述段匹配结果集合中;
确定模块,用于若所述模糊匹配规则中的每一段分段规则都存在于对应的所述段匹配结果集合中,则将所述模糊匹配规则作为目标匹配结果;
输出模块,用于将所有所述目标匹配结果输出;
其中,所述将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果,包括:
确定所有所述待匹配字符串中当前待匹配字符串的所有携带字节标识的字符;
将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果;
判断所有所述待匹配字符串是否都完成字符串匹配;
若是,则获取每个所述待匹配字符串对应的段匹配结果;
若否,则将所述当前待匹配字符串的下一个待匹配字符串作为所述当前待匹配字符串,继续进行字符串匹配;
所述将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果,包括:
确定所述当前待匹配字符串的携带字节标识的当前字符、已匹配字符和目标规则字符;
确定所述有向无环图中所述当前待匹配字符串携带的分段标识对应的匹配规则段中,与所述当前字符携带的所述字节标识相对应且与所述目标规则字符相关联的所有规则字符;
若所有所述规则字符中存在通配符,则将所述已匹配字符与所述通配符组合,作为所述段匹配结果;
若所有所述规则字符中存在与所述当前字符相同的目标规则字符,将所述已匹配字符与所述目标规则字符的组合作为所述已匹配字符;
判断所述当前字符是否为所述当前字符所在的所述当前待匹配字符串中的最后一个字符;
若所述当前字符不是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,将所述当前待匹配字符串中所述当前字符的下一个字符作为所述当前字符,从而继续进行字符匹配;
若所述当前字符是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,且所述目标规则字符为所述当前待匹配字符串对应的所述匹配规则段中的最后一个字符,则将所述已匹配字符作为所述段匹配结果。
6.根据权利要求5所述的URL模糊匹配装置,其特征在于,所述模糊匹配规则的数量至少为一条;
所述构建模块,具体用于将每条所述模糊匹配规则进行分段处理,得到携带有所述分段标识的分段规则;
将所有分段规则根据所述分段标识分别载入到预设的图模型中,构建出所述有向无环图。
7.一种URL模糊匹配系统,其特征在于,包括:处理器以及与所述处理器相连的存储器;
所述存储器用于存储计算机程序,所述计算机程序至少用于执行权利要求1-4任一项所述的URL模糊匹配方法;
所述处理器用于调用并执行所述计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010888564.9A CN112052413B (zh) | 2020-08-28 | 2020-08-28 | Url模糊匹配方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010888564.9A CN112052413B (zh) | 2020-08-28 | 2020-08-28 | Url模糊匹配方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052413A CN112052413A (zh) | 2020-12-08 |
CN112052413B true CN112052413B (zh) | 2024-02-13 |
Family
ID=73608349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010888564.9A Active CN112052413B (zh) | 2020-08-28 | 2020-08-28 | Url模糊匹配方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052413B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112804373B (zh) * | 2020-12-30 | 2022-10-14 | 微医云(杭州)控股有限公司 | 接口域名确定方法、装置、电子设备及存储介质 |
CN112732727B (zh) * | 2021-04-06 | 2021-06-18 | 南京冰鉴信息科技有限公司 | 一种图指标流批一体化处理方法及装置 |
CN114157648B (zh) * | 2021-11-30 | 2023-11-28 | 北京知道创宇信息技术股份有限公司 | 请求匹配规则生成方法及装置、网站服务器和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719128A (zh) * | 2009-12-31 | 2010-06-02 | 浙江工业大学 | 一种基于模糊匹配的中文地理编码确定方法 |
CN102411617A (zh) * | 2011-10-31 | 2012-04-11 | 北京锐安科技有限公司 | 一种对海量url进行存储和查询方法 |
WO2013106989A1 (zh) * | 2012-01-16 | 2013-07-25 | 中国科学院北京基因组研究所 | 一种字符串匹配的方法及装置 |
CN106161351A (zh) * | 2015-03-31 | 2016-11-23 | 中兴通讯股份有限公司 | 流媒体服务与文件下载融合的方法、装置及cdn服务器 |
WO2017097075A1 (zh) * | 2015-12-11 | 2017-06-15 | 北京搜狗科技发展有限公司 | 一种关键词模糊匹配的方法及装置 |
CN109672586A (zh) * | 2018-12-13 | 2019-04-23 | 宜通世纪科技股份有限公司 | 一种dpi业务流量识别方法、装置与计算机可读存储介质 |
CN111061972A (zh) * | 2019-12-25 | 2020-04-24 | 武汉绿色网络信息服务有限责任公司 | 一种用于url路径匹配的ac查找优化方法和装置 |
-
2020
- 2020-08-28 CN CN202010888564.9A patent/CN112052413B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719128A (zh) * | 2009-12-31 | 2010-06-02 | 浙江工业大学 | 一种基于模糊匹配的中文地理编码确定方法 |
CN102411617A (zh) * | 2011-10-31 | 2012-04-11 | 北京锐安科技有限公司 | 一种对海量url进行存储和查询方法 |
WO2013106989A1 (zh) * | 2012-01-16 | 2013-07-25 | 中国科学院北京基因组研究所 | 一种字符串匹配的方法及装置 |
CN106161351A (zh) * | 2015-03-31 | 2016-11-23 | 中兴通讯股份有限公司 | 流媒体服务与文件下载融合的方法、装置及cdn服务器 |
WO2017097075A1 (zh) * | 2015-12-11 | 2017-06-15 | 北京搜狗科技发展有限公司 | 一种关键词模糊匹配的方法及装置 |
CN109672586A (zh) * | 2018-12-13 | 2019-04-23 | 宜通世纪科技股份有限公司 | 一种dpi业务流量识别方法、装置与计算机可读存储介质 |
CN111061972A (zh) * | 2019-12-25 | 2020-04-24 | 武汉绿色网络信息服务有限责任公司 | 一种用于url路径匹配的ac查找优化方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112052413A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112052413B (zh) | Url模糊匹配方法、装置和系统 | |
CN105389349B (zh) | 词典更新方法及装置 | |
US20160048585A1 (en) | Bloom filter with memory element | |
CN110019647B (zh) | 一种关键词搜索方法、装置和搜索引擎 | |
CN108875040A (zh) | 词典更新方法及计算机可读存储介质 | |
TWI652586B (zh) | 基於社交網路的群組查找方法和裝置 | |
US20120303359A1 (en) | Dictionary creation device, word gathering method and recording medium | |
CN108363686A (zh) | 一种字符串分词方法、装置、终端设备及存储介质 | |
US9361403B2 (en) | Efficiently counting triangles in a graph | |
CN110414236A (zh) | 一种恶意进程的检测方法及装置 | |
US8701162B1 (en) | Method and system for detecting and countering malware in a computer | |
CN109905413A (zh) | 一种ip地址的匹配方法及装置 | |
CN109145003A (zh) | 一种构建知识图谱的方法及装置 | |
US20140149341A1 (en) | System and method for refining address database for improving performance of automated mail sorting machine | |
KR102151858B1 (ko) | 링크드 데이터와 문자열 데이터를 이용한 온톨로지 인스턴스 확장 방법 및 시스템 | |
CN111698256B (zh) | 检测非法链接的方法及装置 | |
CN116866241A (zh) | 基于dpi的物联网终端检测方法、系统及存储介质 | |
CN108304467B (zh) | 用于文本间匹配的方法 | |
JP5151394B2 (ja) | 情報管理装置、情報管理方法、及びプログラム | |
CN107657026B (zh) | 用户界面单元测试方法、装置、可读存储介质及设备 | |
JP5619851B2 (ja) | パターンマッチングエンジン及びこれを備えた端末装置並びにその方法 | |
US11025650B2 (en) | Multi-pattern policy detection system and method | |
CN110555158A (zh) | 互斥数据处理方法及系统、计算机可读存储介质 | |
CN110209829B (zh) | 信息处理方法和装置 | |
CN113282686A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |