CN117370388A - 数据匹配方法、装置、电子设备及存储介质 - Google Patents
数据匹配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117370388A CN117370388A CN202311220235.7A CN202311220235A CN117370388A CN 117370388 A CN117370388 A CN 117370388A CN 202311220235 A CN202311220235 A CN 202311220235A CN 117370388 A CN117370388 A CN 117370388A
- Authority
- CN
- China
- Prior art keywords
- matching
- data
- rule
- matched
- 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 44
- 238000012545 processing Methods 0.000 claims description 21
- 230000014509 gene expression Effects 0.000 abstract description 15
- 238000012423 maintenance Methods 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 21
- 238000011161 development Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 238000012800 visualization Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012546 transfer 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- 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)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据匹配方法、装置、电子设备及存储介质,涉及互联网技术领域,用以解决现有技术中使用判断语句和三元表达式书写的代码繁琐和维护成本高的问题。该方法包括:获取待匹配数据以及匹配规则信息;匹配规则信息包括多个匹配规则以及多个匹配规则之间的逻辑关系;将多个匹配规则转化为规则数组,并根据规则数组以及逻辑关系,对待匹配数据进行规则匹配;规则数组包括多个数组元素,一个数组元素对应一个匹配规则。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据匹配方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的发展,在可视化开发方面,人们可以使用智能电子设备浏览网页来获取所需的内容,网页的开发人员为了提升用户体验,会对页面的内容进行丰富化和个性化。即通过开发人员为网页上显示的各业务数据设置匹配规则,使网页上显示的内容根据匹配规则匹配对应的样式,实现网页内容的丰富化和个性化,提升用户使用网页的体验感。
现有技术通常使用常见的判断语句和三元表达式等判断方式,为网页中的各业务数据设置匹配规则,并判断各业务数据是否满足预设的匹配规则,若满足,将业务数据按照匹配规则对应的显示方式进行显示。但是常见的判断语句和三元表达式的代码可读性差,语句分支多,开发人员进行维修的时间成本大,进行拓展和修改的难度高,容易影响原代码之间的逻辑性和稳定性,且在测试时无法全面有效的进行测试,容易出现漏洞,导致网页的开发成本和维护成本高。因此,亟需设计一种方案,来提高匹配规则代码的灵活性和网页的开发效率。
发明内容
本申请提供一种数据匹配方法、装置、电子设备及存储介质,以解决现有技术中匹配规则代码繁琐和维护成本高的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据匹配方法,该方法包括:获取待匹配数据以及匹配规则信息;匹配规则信息包括多个匹配规则以及多个匹配规则之间的逻辑关系;将多个匹配规则转化为规则数组,并根据规则数组以及逻辑关系,对待匹配数据进行规则匹配;规则数组包括多个数组元素,一个数组元素对应一个匹配规则。
可选的,一个匹配规则包括一个匹配数据的数据名称、匹配数据对应的匹配数值以及匹配数值对应的运算符;将多个匹配规则转化为规则数组,包括:获取目标匹配规则的目标数据名称、目标匹配数值以及目标运算符,并将目标数据名称、目标匹配数值以及目标运算符作为一个数组元素,得到多个数组元素;目标匹配规则为多个匹配规则中的任意一个;根据多个数组元素,得到规则数组。
可选的,待匹配数据包括至少一个业务数据;一个业务数据对应一个子数据名称以及一个子数据值;根据规则数组以及逻辑关系,对待匹配数据进行规则匹配,包括:从规则数组中确定与各业务数据具有相同数据名称的匹配数据,得到各业务数据对应的匹配数值以及运算符;根据各业务数据的数据值、各业务数据对应的匹配数值以及运算符,确定各业务数据是否匹配,得到多个第一匹配结果;基于多个第一匹配结果以及逻辑关系,确定第二匹配结果,并将第二匹配结果作为待匹配数据的匹配结果。
可选的,基于多个第一匹配结果以及逻辑关系,确定第二匹配结果,包括:在逻辑关系为与的情况下,若多个第一匹配结果均匹配成功,确定第二匹配结果匹配成功;在逻辑关系为或的情况下,若任意一个第一匹配结果匹配成功,确定第二匹配结果匹配成功。
第二方面,提供一种数据匹配装置,该装置包括获取单元以及处理单元;获取单元,用于获取待匹配数据以及匹配规则信息;匹配规则信息包括多个匹配规则以及多个匹配规则之间的逻辑关系;处理单元,用于将多个匹配规则转化为规则数组,并根据规则数组以及逻辑关系,对待匹配数据进行规则匹配;规则数组包括多个数组元素,一个数组元素对应一个匹配规则。
可选的,一个匹配规则包括一个匹配数据的数据名称、匹配数据对应的匹配数值以及匹配数值对应的运算符,获取单元,具体用于:获取目标匹配规则的目标数据名称、目标匹配数值以及目标运算符,并将目标数据名称、目标匹配数值以及目标运算符作为一个数组元素,得到多个数组元素;目标匹配规则为多个匹配规则中的任意一个;根据多个数组元素,得到规则数组。
可选的,待匹配数据包括至少一个业务数据;一个业务数据对应一个子数据名称以及一个子数据值;根据规则数组以及逻辑关系,对待匹配数据进行规则匹配,处理单元,具体用于:从规则数组中确定与各业务数据具有相同数据名称的匹配数据,得到各业务数据对应的匹配数值以及运算符;根据各业务数据的数据值、各业务数据对应的匹配数值以及运算符,确定各业务数据是否匹配,得到多个第一匹配结果;基于多个第一匹配结果以及逻辑关系,确定第二匹配结果,并将第二匹配结果作为待匹配数据的匹配结果。
可选的,处理单元,具体用于:在逻辑关系为与的情况下,若多个第一匹配结果均匹配成功,确定第二匹配结果匹配成功;在逻辑关系为或的情况下,若任意一个第一匹配结果匹配成功,确定第二匹配结果匹配成功。
第三方面,提供一种电子设备,包括:处理器、用于存储处理器可执行的指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面的数据匹配方法。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面的数据匹配方法。
本申请实施例提供的技术方案至少带来以下有益效果:数据匹配装置获取待匹配数据以及匹配规则信息,匹配规则信息包括多个匹配规则以及多个匹配规则之间的逻辑关系。将多个匹配规则转化为规则数组,并根据规则数组以及逻辑关系,对待匹配数据进行规则匹配;规则数组包括多个数组元素,一个数组元素对应一个匹配规则。由于对待匹配数据进行匹配时,没有使用判断语句或三元表达式设置匹配规则进行匹配,而是将匹配规则转化为规则数组与待匹配数据进行匹配,去掉了判断语句,减少了语句的嵌套和分支,提高了代码的灵活性、逻辑性以及稳定性。相较于判断语句或三元表达式直接进行判断,本申请使用了规则数组与待匹配数据进行匹配,在开发人员进行开发时,不需要为每类匹配规则单独开发脚本或程序,减少了开发人员的开发时间和开发精力。在对匹配规则进行修改时,开发人员也不需要对全部的判断语句和匹配程序进行修改,只需要修改对应的匹配规则即可,不影响源代码之间的逻辑性和稳定性,提高了程序的精简度和节约了开发人员的时间和精力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据匹配系统的结构示意图;
图2为本申请实施例提供的一种数据匹配方法的流程示意图之一;
图3为本申请实施例提供的一种数据匹配方法的流程示意图之二;
图4为本申请实施例提供的一种数据匹配方法的流程示意图之三;
图5为本申请实施例提供的一种数据匹配装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
还需要说明的是,本申请实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
在对本申请实施例进行详细地解释说明之前,先对本申请实施例涉及到的一些相关技术术语以及相关技术进行介绍。
随着互联网技术的不断发展,人们不再满足于通过文字描述来了解事物的特性,倾向于根据图片或数据的多种形式来了解事物,而可视化技术就可以将原来需要文字描述的数据转化成图像、表格,以及多种形式的数据格式,让人们能够更加直观的了解某一事物。
可视化(Visualization)是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,再进行交互处理的理论、方法和技术。它涉及到计算机图形学、图像处理、计算机视觉、计算机辅助设计等多个领域,成为研究数据表示、数据处理、决策分析等一系列问题的综合技术。目前正在飞速发展的虚拟现实技术也是以图形图像的可视化技术为依托的。
而可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,用来构建极其丰富的用户界面。
其中,JavaScript语言可以用来开发可视化页面。JavaScript是一种直译式网络脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在超文本标记语言(HyperText Markup Language,HTML)网页上使用,用来给HTML网页增加动态功能。
需要说明的,JavaScript程序是由若干语句组成的,语句是编写程序的指令。JavaScript提供了完整的基本编程语句,包括赋值语句、switch选择语句、while循环语句、for循环语句、for each循环语句、do...while循环语句、break循环中止语句、continue循环中断语句、with语句、try…catch语句、if语句(if…else,if…else if…)。
现有技术使用JavaScrip中常见的判断语句和三元表达式等判断方式,为网页中的待匹配数据设置判断条件和匹配规则,判断待匹配数据是否满足预设的匹配规则,若满足,将待匹配数据按照匹配规则对应的显示方式进行显示。
但是使用现有的判断方式为待匹配数据设置复杂的判断条件和匹配规则时,开发人员需要为每类判断条件和匹配规则单独开发脚本或程序,根据判断条件和匹配规则编写繁琐的代码,如果需要修改判断条件和匹配规则,则需要重新开发,导致网页的开发成本和维护成本高。
鉴于上述问题,本申请提供了一种数据匹配方法,致力于简化匹配规则的判断代码,提高网页的开发效率。
下面结合附图对本申请实施例提供的数据匹配方法进行详细说明。
本申请实施例提供的数据匹配方法可以适用于数据匹配系统。如图1所示,数据匹配系统10包括服务器11以及数据匹配装置12。其中,服务器11中存储着匹配规则信息,匹配规则信息包括多个匹配规则以及多个匹配规则之间的逻辑关系。数据匹配装置12使用这些匹配规则信息对待处理数据进行处理,并将处理好的待处理数据显示出来。
需要说明的,服务器11可以是单独的一个服务器,或者,也可以是有多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。可选地,服务器还可以在云平台上实现,例如,云平台可以包括私有云、公有云、混合云、社区云(communitycloud)、分布式云、跨云(inter-cloud)、以及多云(multi-cloud)等,或者它们的任意组合。本申请实施例对此不作限制。
数据匹配装置12可以为实体设备,也可以为虚拟设备,本申请对此不做限定。
数据匹配装置12中显示的内容可以是文字、数字,也可以是图形、图片、模型。显示的数据信息可以是平面的,也可以是3D立体的,本申请对此不做限定。
图2是根据一些示例性实施例示出的一种数据匹配方法的流程示意图。在一些实施例中,下述数据匹配方法可以应用到如图1所示的数据匹配系统中,也可以应用到其他类似场景。
如图2所示,本申请实施例提供的数据匹配方法,包括下述S201-S202。
S201、获取待匹配数据以及匹配规则信息。
其中,匹配规则信息包括多个匹配规则以及多个匹配规则之间的逻辑关系。
作为一种可能实现的方式,数据匹配装置需要获取待匹配数据,待匹配数据可以是开发人员输入的,也可以是服务器中存储的,还可以是数据匹配装置从云平台或网页中获取的,本申请对此不做限定。数据匹配装置获取服务器中预先设置好的匹配规则信息。数据匹配装置获取的匹配规则信息包括多个匹配规则,匹配规则判断待匹配数据是否在匹配规则的范围内,得到对应的匹配结果,即匹配规则判断待匹配数据在匹配规则的范围内为肯定的匹配结果,匹配规则判断待匹配数据不在匹配规则的范围内为否定的匹配结果。
多个匹配规则之间的存在逻辑关系,匹配规则之间的逻辑关系分为三种,分别为与、或、非三种逻辑关系,三种逻辑关系用来确定匹配结果的满足情况。即所有匹配规则对应的匹配结果都为肯定的匹配结果,则满足多个匹配规则之间的逻辑关系为与的逻辑关系;若所有匹配规则对应的匹配结果都为否定的匹配结果,则满足多个匹配规则之间的逻辑关系为非的逻辑关系;若所有匹配规则对应的匹配结果中有任意一个匹配结果为肯定的匹配结果,则满足多个匹配规则之间的逻辑关系为或的逻辑关系。
S202、将多个匹配规则转化为规则数组,并根据规则数组以及逻辑关系,对待匹配数据进行规则匹配。
其中,规则数组包括多个数组元素,一个数组元素对应一个匹配规则。
需要说明的,一个匹配规则包括一个匹配数据的数据名称、匹配数据对应的匹配数值以及匹配数值对应的运算符。即数据匹配装置中的每一个匹配规则包括一个匹配数据的数据名称、匹配数值、运算符,匹配数据对应的匹配数值为数据名称对应的数值区间端点,匹配数值对应的运算符为关系运算符。匹配规则中匹配数据的数据名称、匹配数值、关系运算符可以组成关系表达式。数据匹配装置可以根据与匹配规则的数据名称相同的待匹配数据的属性数据名称,确定该待匹配数据的属性数据名称对应的属性值的取值范围。
作为一种可能实现的方式,数据匹配装置将多个匹配规则进行转化,数据匹配装置确定需要进行转化的匹配规则,按匹配规则中的逻辑关系和关系运算符按顺序逐个进行转化,即抽取匹配规则中的逻辑关系和运算符,按照逻辑关系的分类,依次进行转化,对每一种逻辑关系中的匹配规则都按照运算符的顺序进行转化,即按照相等运算符、大于运算符、大于等于运算符、小于运算符、小于等于运算符、数值为空运算符的顺序进行转化,且相等运算符、大于运算符、大于等于运算符、小于运算符、小于等于运算符、数值为空运算符对应的含义词分别为属性值等于(PropertyIsEqualTo)、属性值大于(PropertyIsGreaterThan)、属性值大于等于(PropertyIsGreaterThanOrEqualTo)、属性值小于(PropertyIsLessThan)、属性值小于等于(PropertyIsLessThanOrEqualTo)、属性值为空(PropertyIsNull)。
数据匹配装置确定任意一个需要进行转化的匹配规则为目标匹配规则,对目标匹配规则进行转化前确定目标匹配规则属于哪种逻辑关系,确定完成后开始转化。首先抽取目标匹配规则的目标运算符对应的含义词,使用判断语句判断目标运算符属于哪种运算符的含义词,判断完成后,确定进行抽取的程序,数据匹配装置列出目标运算符的符号表达方式,并获取目标匹配规则的目标数据名称、目标匹配数值,将目标运算符的符号表达式、目标数据名称、目标匹配数值存入一个数组中。
数据匹配装置将目标数据名称、目标匹配数值以及目标运算符作为一个数组元素,通过遍历转化所有的匹配规则得到多个数组元素。即数据匹配规则抽取目标匹配规则的目标数据名称、目标匹配数值以及目标运算符的含义词进行组合,组合成一个格式为“{目标运算符的符号表达式,目标数据名称,目标匹配数值}”的数组元素。
数据匹配装置根据多个数组元素,得到规则数组。即数据匹配装置根据逻辑关系和数组元素确定对应的规则数组,三种逻辑关系分别对应与逻辑关系的规则数组、非逻辑关系的规则数组以及或逻辑关系的规则数组。每个规则数组中存放着多个数组元素,这些数组元素为每种逻辑关系对应的由匹配规则转化的数组元素。
在一些实施例中,数据匹配装置将多个匹配规则转化为规则数组,并根据规则数组以及对应的逻辑关系,对待匹配数据进行规则匹配。即数据匹配装置使用由多个数组元素构成的规则数组以及规则数组对应的逻辑关系,对待匹配数据进行规则匹配,得到待匹配数据的匹配结果。
示例性的,数据匹配装置对与逻辑关系中的匹配规则进行转化。与逻辑关系中,存在数据名称1(property1)、数据名称2(property2)、数据名称3(property3)、数据名称4(property4)、数据名称5(property5),且数据名称对应的匹配规则为数据名称1的值(property1Value)大于等于0、数据名称2的值(property2Value)不为空、数据名称3的值(property3Value)相等于7、数据名称4的值(property4Value)小于等于3、数据名称5的值(property5Value)小于1。
数据匹配装置使用数据匹配方法对与逻辑关系对应的匹配规则进行处理。数据匹配装置确定匹配规则对应的逻辑关系为与逻辑关系,根据上述匹配规则,按匹配规则中对应的运算符的含义词、数据名称以及匹配数值的顺序进行排列,并确定满足与逻辑关系中匹配规则对应返回的结果数据。数据匹配装置对排列好的匹配规则进行转化,抽取与逻辑关系中匹配规则的运算符的含义词,按照PropertyIsEqualTo、PropertyIsGreaterThan、PropertyIsGreaterThanOrEqualTo、PropertyIsLessThan、PropertyIsLessThanOrEqualTo、PropertyIsNull的顺序对匹配规则进行抽取。例如数据匹配装置对PropertyIsGreaterThanOrEqualTo进行抽取,抽取完运算符的含义词后,数据匹配装置根据该含义词抽取对应的数据名称以及匹配数值,将含义词对应的运算符表达式、数据名称以及匹配数值以数组的形式输出,例如数据匹配装置对PropertyIsGreaterThanOrEqualTo对应的property1匹配规则进行抽取,抽取得到的关系运算符为“>=”,抽取得到的数据名称为“property1”,抽取得到对应的匹配数值为property1Value,即property1对应的匹配数值为0,组合得到的数组为{运算符:'>=',数据名称:'property1',匹配数值:0}。数据匹配装置将多个数组组成一个与逻辑关系对应的规则数组,规则数组中包含多个由匹配规则转化为的数组元素。
本申请实施例提供的技术方案至少带来以下有益效果:数据匹配装置获取待匹配数据以及匹配规则信息,匹配规则信息包括多个匹配规则以及多个匹配规则之间的逻辑关系。将多个匹配规则转化为规则数组,并根据规则数组以及逻辑关系,对待匹配数据进行规则匹配;规则数组包括多个数组元素,一个数组元素对应一个匹配规则。由于对待匹配数据进行匹配时,没有使用判断语句或三元表达式设置匹配规则进行匹配,而是将匹配规则转化为规则数组与待匹配数据进行匹配,去掉了判断语句,减少了语句的嵌套和分支,提高了代码的灵活性、逻辑性以及稳定性。相较于判断语句或三元表达式直接进行判断,本申请使用了规则数组与待匹配数据进行匹配,在开发人员进行开发时,不需要为每类匹配规则单独开发脚本或程序,减少了开发人员的开发时间和开发精力。在对匹配规则进行修改时,开发人员也不需要对全部的判断语句和匹配程序进行修改,只需要修改对应的匹配规则即可,不影响源代码之间的逻辑性和稳定性,提高了程序的精简度和节约了开发人员的时间和精力。
图3是根据一些示例性实施例示出的一种数据匹配方法的流程示意图。其中,图3所示的步骤为上述数据匹配方法S202的具体步骤,具体内容包括S2021-S2023。
需要说明的,待匹配数据包括至少一个业务数据,一个业务数据对应一个子数据名称以及一个子数据值。即数据匹配装置获取的待匹配数据中包括至少一个业务数据,一个业务数据对应一个子数据名称以及一个子数据值。其中,待匹配数据中存在与数据匹配装置中匹配规则的数据名称相同的子数据名称,数据匹配装置确定与待匹配数据中的子数据名称相同的规则数组中数组元素的数据名称,并根据规则数组以及逻辑关系,对待匹配数据中的业务数据进行规则匹配。
S2021、从规则数组中确定与各业务数据具有相同数据名称的匹配数据,得到各业务数据对应的匹配数值以及运算符。
作为一种可能实现的方式,数据匹配装置先按逻辑关系的顺序确定规则数组的匹配顺序,再按照规则数组中运算符的顺序确定数组元素的匹配顺序。即数据匹配装置先匹配与逻辑关系的规则数组中的数组元素,匹配完成后匹配非逻辑关系的规则数组中的数组元素,再匹配或逻辑关系的规则数组中的数组元素。确定需要进行匹配的规则数组后,按数组元素的运算符顺序对待匹配数据中的数据进行遍历匹配。
数据匹配装置确定某一数组元素为目标数组元素,确定目标数组元素中的目标匹配数值,确定待匹配数据中与目标数组元素的目标数据名称相同的子数据名称,根据相同的名称确定目标业务数据中的子数据值。数据匹配装置将目标子数据值、数组元素的运算符、目标匹配数值按顺序放置,准备进行数值匹配。
其中,待匹配数据的业务数据可以为待匹配数据的属性数据,数据匹配装置将根据每条业务数据的子数据名称确定与其对应的子数据值。
S2022、根据各业务数据的数据值、各业务数据对应的匹配数值以及运算符,确定各业务数据是否匹配,得到多个第一匹配结果。
作为一种可能实现的方式,数据匹配装置根据各业务数据的数据值、各业务数据对应的匹配数值以及运算符,确定各业务数据是否匹配,得到多个第一匹配结果。即数据匹配装置使用匹配函数对排列好的目标子数据值、数组元素的运算符、目标匹配数值进行匹配,得到对应的第一匹配结果,通过遍历规则数组中的所有数组元素与待匹配数据中的业务数据,得到该逻辑关系对应的规则数组的所有的第一匹配结果。
需要说明的,三种逻辑关系的匹配方式相同,本申请对此不作赘述。
数据匹配装置使用的匹配函数可以为eval函数,eval是Javascript内置函数,用于计算字符串表达式的值。例如eval("2+3")返回的是5。eval函数是程序语言中的函数,功能是获取返回值,不同语言大同小异,函数基础是返回值=eval(codeString),如果eval函数在执行时遇到错误,则抛出异常给调用者。类似的函数是loadcode,loadcode不立即执行代码,另外返回一个函数对象。并且loadcode支持路径参数,eval并不支持。eval并不支持代码中的return语句,而是将代码作为表达式直接计算出结果。
一些实施例中,数据匹配装置根据目标数组元素的数据名称找到待匹配数据中名称相同的业务数据,使用匹配函数eval对排列好的目标子数据值、数组元素的运算符、目标匹配数值进行匹配,判断业务数据的子数据值是否在数组元素中由匹配数值和关系运算符构成的数值区间中。若子数据值在该数值区间中,数据匹配装置返回一个肯定的第一匹配结果,若子数据值不在该数值区间中,数据匹配装置返回一个否定的第一匹配结果。
S2023、基于多个第一匹配结果以及逻辑关系,确定第二匹配结果,并将第二匹配结果作为待匹配数据的匹配结果。
作为一种可能实现的方式,数据匹配装置基于多个第一匹配结果以及逻辑关系,确定第二匹配结果,并将第二匹配结果作为待匹配数据的匹配结果。即数据匹配装置根据子数据值、匹配数值以及关系运算符确定多个第一匹配结果,根据多个第一匹配结果对应的规则数组确定规则数组对应的逻辑关系,根据逻辑关系判断多个第一匹配结果之间的关系,确定第二匹配结果,并将第二匹配结果作为待匹配数据最终的匹配结果。
一些实施例中,数据匹配装置在逻辑关系为与的情况下,若多个第一匹配结果均匹配成功,数据匹配装置确定第二匹配结果匹配成功。即数据匹配装置判断待匹配数据中的所有业务数据的子数据值都在数组元素的数值区间中,则待匹配数据中的所有业务数据能够成功匹配与逻辑关系的规则数组中所有的数组元素,即第一判断结果都为肯定的第一判断结果,则待匹配数据最终的匹配结果为满足规则数组的逻辑关系为与(And)逻辑关系的判断结果。
其中,非(Not)逻辑关系作为与逻辑关系的子集,满足情况和与逻辑关系的情况相反,即数据匹配装置判断待匹配数据中的所有业务数据的子数据值都不在数组元素的数值区间中,则待匹配数据中的所有业务数据都不能成功匹配与逻辑关系的规则数组中所有的数组元素,即第一判断结果都为否定的第一判断结果,则待匹配数据最终的匹配结果为满足规则数组的逻辑关系为非逻辑关系的判断结果。
数据匹配装置在逻辑关系为或的情况下,若任意一个第一匹配结果匹配成功,数据匹配装置确定第二匹配结果匹配成功。即数据匹配装置判断出待匹配数据中的业务数据的子数据值任意一个在数组元素的数值区间中,则待匹配数据中任意一个的业务数据能够成功匹配或逻辑关系的规则数组中的数组元素,即存在任意一个第一判断结果为肯定的第一判断结果,则待匹配数据最终的匹配结果为满足规则数组的逻辑关系为或(Or)逻辑关系的判断结果。
示例性的,如图4所示,图4示出了数据匹配装置对待匹配数据进行匹配的具体流程包括数据匹配装置获取待匹配数据、规则数组以及逻辑关系,并对待匹配数据遍历匹配规则数组中的数组元素。例如,数据匹配装置取规则数组中的数组元素,与待匹配数据进行匹配,得到第一匹配结果A。
数据匹配装置对第一匹配结果A进行逻辑关系的匹配,判断第一匹配结果A属于哪种逻辑关系。若第一匹配结果A的逻辑关系为与(And)逻辑关系且第一判断结果A为肯定的(true)第一判断结果,进行下一步的判断,判断待匹配数据对规则数组是否遍历完成,若完成遍历则表示数据匹配成功,数据匹配装置输出肯定的第二判断结果,数据匹配装置返回对应的能够改变数据样式的样式数据。若第一判断结果A不为肯定的(true)第一判断结果,而是否定的(false)第一判断结果,数据匹配装置直接返回否定的第二判断结果,数据匹配失败。若待匹配数据对规则数组没有完成遍历,则返回上一步,数据匹配装置取规则数组中的数组元素与待匹配数据进行匹配,得到第一匹配结果。
其中,非(Not)逻辑关系为与逻辑关系的子集,且非逻辑关系的匹配流程和与逻辑关系的匹配流程相似。若第一匹配结果A的逻辑关系为非逻辑关系且第一判断结果A不为肯定的(true)第一判断结果,而是否定的第一判断结果,进行下一步的判断,判断待匹配数据对规则数组是否遍历完成,若完成遍历则表示数据匹配成功,数据匹配装置输出肯定的第二判断结果,数据匹配装置返回对应的能够改变数据样式的样式数据。若第一判断结果A为肯定的第一判断结果,数据匹配装置直接返回否定的第二判断结果,数据匹配失败。若待匹配数据对规则数组没有完成遍历,则返回上一步,数据匹配装置取规则数组中的数组元素与待匹配数据进行匹配,得到第一匹配结果。
数据匹配装置对第一匹配结果A进行逻辑关系的匹配,若第一匹配结果A的逻辑关系为或(Or)逻辑关系且第一判断结果A为肯定的第一判断结果,数据匹配装置直接返回肯定的第二判断结果,数据匹配成功,数据匹配装置返回对应的能够改变数据样式的样式数据。若第一判断结果A不为肯定的(true)第一判断结果,而是否定的第一判断结果,进行下一步的判断,判断待匹配数据对规则数组是否遍历完成,若完成遍历则表示数据匹配失败,数据匹配装置输出否定的第二判断结果。若没有完成遍历则返回上一步,数据匹配装置取其中一个规则数组中的数组元素,与待匹配数据进行匹配,得到第一匹配结果。
上述实施例主要从装置(设备)的角度对本申请实施例提供的方案进行了介绍。可以理解的是,为了实现上述方法,装置或设备包含了执行各个方法流程相应的硬件结构和/或软件模块,这些执行各个方法流程相应的硬件结构和/或软件模块可以构成一个物料信息的确定装置。本领域技术人员应该很容易意识到,结合本文中所发明的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对装置或设备进行功能模块的划分,例如,装置或设备可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图5是根据一示例性实施例示出的数据匹配装置的结构示意图。参照图5所示,本申请实施例提供的路由搜索装置30包括获取单元301以及处理单元302。
获取单元301,用于获取待匹配数据以及匹配规则信息;匹配规则信息包括多个匹配规则以及多个匹配规则之间的逻辑关系;处理单元302,用于将多个匹配规则转化为规则数组,并根据规则数组以及逻辑关系,对待匹配数据进行规则匹配;规则数组包括多个数组元素,一个数组元素对应一个匹配规则。
可选的,一个匹配规则包括一个匹配数据的数据名称、匹配数据对应的匹配数值以及匹配数值对应的运算符,获取单元301,具体用于:获取目标匹配规则的目标数据名称、目标匹配数值以及目标运算符,并将目标数据名称、目标匹配数值以及目标运算符作为一个数组元素,得到多个数组元素;目标匹配规则为多个匹配规则中的任意一个;根据多个数组元素,得到规则数组。
可选的,待匹配数据包括至少一个业务数据;一个业务数据对应一个子数据名称以及一个子数据值;根据规则数组以及逻辑关系,对待匹配数据进行规则匹配,处理单元302,具体用于:从规则数组中确定与各业务数据具有相同数据名称的匹配数据,得到各业务数据对应的匹配数值以及运算符;根据各业务数据的数据值、各业务数据对应的匹配数值以及运算符,确定各业务数据是否匹配,得到多个第一匹配结果;基于多个第一匹配结果以及逻辑关系,确定第二匹配结果,并将第二匹配结果作为待匹配数据的匹配结果。
可选的,处理单元302,具体用于:在逻辑关系为与的情况下,若多个第一匹配结果均匹配成功,确定第二匹配结果匹配成功;在逻辑关系为或的情况下,若任意一个第一匹配结果匹配成功,确定第二匹配结果匹配成功。
图6是本申请提供的一种电子设备的结构示意图。如图6,该电子设备40可以包括至少一个处理器401以及用于存储处理器可执行指令的存储器402其中,处理器401被配置为执行存储器402中的指令,以实现上述实施例中的路由搜索方法。
另外,电子设备40还可以包括通信总线403以及至少一个通信接口404。
处理器401可以是一个处理器(central processing units,CPU),微处理单元,ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线403可包括一通路,在上述组件之间传送信息。
通信接口404,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器402可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器401相连接。存储器402也可以和处理器401集成在一起。
其中,存储器402用于存储执行本申请方案的指令,并由处理器401来控制执行。处理器401用于执行存储器402中存储的指令,从而实现本申请方法中的功能。
作为一个示例,结合图5,路由搜索装置30中的获取单元301以及处理单元302实现的功能与图6中的处理器401的功能相同。
在具体实现中,作为一种实施例,处理器401可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
在具体实现中,作为一种实施例,电子设备40可以包括多个处理器,例如图6中的处理器401和处理器407。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,电子设备40还可以包括输出设备405和输入设备406。输出设备405和处理器401通信,可以以多种方式来显示信息。例如,输出设备405可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备406和处理器401通信,可以以多种方式获取用户对象的输入。例如,输入设备406可以是鼠标、键盘、触摸屏设备或传感设备等。
本领域技术人员可以理解,图6中示出的结构并不构成对电子设备40的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
另外,本申请还提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述实施例所提供的路由搜索方法。
另外,本申请还提供一种计算机程序产品,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上述实施例所提供的路由搜索方法。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
Claims (10)
1.一种数据匹配方法,其特征在于,所述方法包括:
获取待匹配数据以及匹配规则信息;所述匹配规则信息包括多个匹配规则以及所述多个匹配规则之间的逻辑关系;
将所述多个匹配规则转化为规则数组,并根据所述规则数组以及所述逻辑关系,对所述待匹配数据进行规则匹配;所述规则数组包括多个数组元素,一个数组元素对应一个匹配规则。
2.根据权利要求1所述的方法,其特征在于,一个匹配规则包括一个匹配数据的数据名称、所述匹配数据对应的匹配数值以及所述匹配数值对应的运算符;所述将所述多个匹配规则转化为规则数组,包括:
获取目标匹配规则的目标数据名称、目标匹配数值以及目标运算符,并将所述目标数据名称、所述目标匹配数值以及所述目标运算符作为一个数组元素,得到多个数组元素;所述目标匹配规则为所述多个匹配规则中的任意一个;
根据所述多个数组元素,得到所述规则数组。
3.根据权利要求1所述的方法,其特征在于,所述待匹配数据包括至少一个业务数据;一个业务数据对应一个子数据名称以及一个子数据值;所述根据所述规则数组以及所述逻辑关系,对所述待匹配数据进行规则匹配,包括:
从所述规则数组中确定与各业务数据具有相同数据名称的匹配数据,得到各业务数据对应的匹配数值以及运算符;
根据各业务数据的数据值、各业务数据对应的匹配数值以及运算符,确定各业务数据是否匹配,得到多个第一匹配结果;
基于所述多个第一匹配结果以及所述逻辑关系,确定第二匹配结果,并将所述第二匹配结果作为所述待匹配数据的匹配结果。
4.根据权利要求3所述的方法,其特征在于,所述基于所述多个第一匹配结果以及所述逻辑关系,确定第二匹配结果,包括:
在所述逻辑关系为与的情况下,若所述多个第一匹配结果均匹配成功,确定所述第二匹配结果匹配成功;
在所述逻辑关系为或的情况下,若任意一个第一匹配结果匹配成功,确定所述第二匹配结果匹配成功。
5.一种数据匹配装置,其特征在于,所述装置包括获取单元以及处理单元;
所述获取单元,用于获取待匹配数据以及匹配规则信息;所述匹配规则信息包括多个匹配规则以及所述多个匹配规则之间的逻辑关系;
所述处理单元,用于将所述多个匹配规则转化为规则数组,并根据所述规则数组以及所述逻辑关系,对所述待匹配数据进行规则匹配;所述规则数组包括多个数组元素,一个数组元素对应一个匹配规则。
6.根据权利要求5所述的装置,其特征在于,一个匹配规则包括一个匹配数据的数据名称、所述匹配数据对应的匹配数值以及所述匹配数值对应的运算符;所述获取单元,具体用于:
获取目标匹配规则的目标数据名称、目标匹配数值以及目标运算符,并将所述目标数据名称、所述目标匹配数值以及所述目标运算符作为一个数组元素,得到多个数组元素;所述目标匹配规则为所述多个匹配规则中的任意一个;
根据所述多个数组元素,得到所述规则数组。
7.根据权利要求5所述的装置,其特征在于,所述待匹配数据包括至少一个业务数据;一个业务数据对应一个子数据名称以及一个子数据值;所述根据所述规则数组以及所述逻辑关系,对所述待匹配数据进行规则匹配,所述处理单元,具体用于:
从所述规则数组中确定与各业务数据具有相同数据名称的匹配数据,得到各业务数据对应的匹配数值以及运算符;
根据各业务数据的数据值、各业务数据对应的匹配数值以及运算符,确定各业务数据是否匹配,得到多个第一匹配结果;
基于所述多个第一匹配结果以及所述逻辑关系,确定第二匹配结果,并将所述第二匹配结果作为所述待匹配数据的匹配结果。
8.根据权利要求7所述的装置,其特征在于,所述处理单元,具体用于:
在所述逻辑关系为与的情况下,若所述多个第一匹配结果均匹配成功,确定所述第二匹配结果匹配成功;
在所述逻辑关系为或的情况下,若任意一个第一匹配结果匹配成功,确定所述第二匹配结果匹配成功。
9.一种电子设备,其特征在于,包括:处理器、用于存储所述处理器可执行的指令的存储器;其中,所述处理器被配置为执行指令,以实现权利要求1-4中任一项所述的数据匹配方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1-4中任一项所述的数据匹配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311220235.7A CN117370388A (zh) | 2023-09-20 | 2023-09-20 | 数据匹配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311220235.7A CN117370388A (zh) | 2023-09-20 | 2023-09-20 | 数据匹配方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117370388A true CN117370388A (zh) | 2024-01-09 |
Family
ID=89390134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311220235.7A Pending CN117370388A (zh) | 2023-09-20 | 2023-09-20 | 数据匹配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117370388A (zh) |
-
2023
- 2023-09-20 CN CN202311220235.7A patent/CN117370388A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177176B (zh) | 数据检测方法、装置及存储介质 | |
CN112199086B (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN113095995B (zh) | 网页水印添加方法、装置、电子设备及存储介质 | |
US20080222521A1 (en) | Viewing System that Supports Multiple Electronic Document Types | |
CN107885713B (zh) | 文件格式转换方法、装置、设备和存储介质 | |
CN111240669B (zh) | 界面生成方法、装置、电子设备及计算机存储介质 | |
CN104572072A (zh) | 一种对基于mvc模式的程序的语言转换方法与设备 | |
CN113018870B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN114896417A (zh) | 一种基于知识图谱构建计算机教育知识图谱的方法 | |
CN107506190A (zh) | 基于Spring框架的XML文件修改方法及装置 | |
CN114398138B (zh) | 界面生成方法、装置、计算机设备和存储介质 | |
Chai et al. | Amex: Android multi-annotation expo dataset for mobile gui agents | |
CN116226487B (zh) | 一种基于图形识别的数据大屏可视化方法及系统 | |
JP6781819B2 (ja) | タスク処理方法及び分散コンピューティングフレームワークシステム | |
CN112506503A (zh) | 一种编程方法、装置、终端设备及存储介质 | |
CN117435106A (zh) | 一种页面生成方法、装置、电子设备及存储介质 | |
CN115309397B (zh) | 一种数据解释模型的画布拓扑管理方法和系统 | |
CN117370388A (zh) | 数据匹配方法、装置、电子设备及存储介质 | |
CN113642295B (zh) | 页面排版方法、装置及计算机程序产品 | |
CN117215661A (zh) | 一种事件处理的方法、装置以及存储介质 | |
CN115631374A (zh) | 控件操作方法、控件检测模型的训练方法、装置和设备 | |
CN112732254B (zh) | 网页开发方法、装置、计算机设备和存储介质 | |
CN112632436A (zh) | 一种网页显示方法、装置、电子设备及存储介质 | |
CN118466911B (zh) | 一种推荐方法、装置、设备及存储介质 | |
Milovanovic et al. | Python Data Visualization Cookbook |
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 |