基于正则表达式的字符匹配方法及系统与流程

文档序号:13483462阅读:428来源:国知局

本公开一般涉及数据处理领域,尤其涉及一种基于正则表达式的字符匹配方法及系统。



背景技术:

一般对于树状结构内的数据识别,普遍做法采用if(else)语句,对于逻辑层次比较多的树状结构,采用if(else)语句结构比较复杂,冗余比较多;运行时间比较长。

而正则表达式是符合正则文法的字符串,描述由有穷或无穷多个符合某种句法规则的字符串构成的集合,其可扫描数字或其它字符的串,它能够处理非常大且复杂的字符识别。目前还未提供有关将正则表达式运用于具有逻辑层次的字符匹配的应用。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,提供了本发明。

第一方面,本发明提供了一种基于正则表达式的字符匹配方法,包括:接收输入信息;以及从关联的规则集中搜索与所述输入信息匹配的字符串,其中所述规则集具有树状逻辑层次并且表示为一组正则表达式,所述正则表达式所表示的字符串对应于该规则集的树状逻辑层次的不同层次的节点数据,其中所述搜索包括:将所述输入信息与每个所述正则表达式进行正则匹配;若所述输入信息与任一正则表达式匹配成功,则获得匹配结果。

优选,所述方法还包括:确定所述输入信息所属的信息类别;

根据预设信息类别与规则集的对应关系,选择所述信息类别对应的规则集作为所述关联的规则集。

优选,所述确定所述输入信息所属的信息类别包括:

将所述输入信息按照树状逻辑层次划分为不同层次的信息;以及

基于最高层次的信息确定所述信息类别。

优选,所述信息类别包括以下至少一项:字符、地址、指纹和密码。

优选,基于所述匹配结果查找与匹配的所述正则表达式关联的信息。

第二方面,本发明提供了一种基于正则表达式的字符匹配系统,包括:

接收模块,用于接收输入信息;

存储模块,用于存储预设的信息类别以及表示与每类信息相关联的规则集的正则表达式,所述规则集具有树状逻辑层次,且所述正则表达式所表示的字符串对应于该规则集的树状逻辑层次的不同层次的节点数据;

匹配模块,用于将输入信息与每个所述正则表达式匹配;

获取模块,在匹配成功的情况下,基于匹配结果查找与匹配的所述正则表达式关联的信息。

优选,所述系统还包括:分类模块,用于确定所述输入信息所属的信息类别。

优选,所述分类模块,具体用于将所述输入信息按照树状逻辑层次划分为不同层次的信息;以及基于最高层次的信息确定所属的信息类别。

优选,所述信息类别包括以下至少一项:字符、地址、指纹和密码。

本发明提供的基于正则表达式的字符匹配方法及系统,将正则表达式运用于具有逻辑层次的字符匹配中,将具有树状逻辑层次的规则集以一组正则表达式表示,根据匹配结果查找与匹配的正则表达式关联的信息,匹配效率高,程序简单。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明提供的基于正则表达式的字符匹配方法的流程图;

图2为本发明提供的基于正则表达式的字符匹配系统的结构示意图;

图3为本发明提供的一种包含地址信息的规则集的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

参见图1所示,为本发明提供的基于正则表达式的字符匹配方法的流程图,该方法包括:

步骤s101:接收输入信息;

步骤s103:从关联规则集中搜索与输入信息匹配的字符串,其中规则集具有树状逻辑层次并且表示为一组正则表达式,正则表达式所表示的字符串对应于该规则集的树状逻辑层次的不同层次的节点数据,其中搜索包括:将输入信息与每个正则表达式进行正则匹配;若输入信息与任一正则表达式匹配成功,则获得匹配结果。

本申请中规则集的树状逻辑层次的不同层次对应于树状结构的不同阶度的表述,树状逻辑层次中的低层次和高层次对应于树状结构中的低阶度和高阶度,例如第一层即第一阶度,第二层即第二阶度,以此类推。在实际应用中,本发明提供的基于正则表达式的字符匹配方法可应用于具有树状逻辑层次的规则集,树状逻辑层次的不同层次的节点数据对应于正则表达式所表示的字符串。该方法可应用于不同类型的信息的查找与赋值。

进一步地,在接收输入信息之后,上述方法还包括s102:确定输入信息所属的信息类别;根据预设信息类别与规则集的对应关系,选择所述信息类别对应的规则集作为所述关联的规则集。例如,信息类别至少包括如下一项:字符、地址、指纹和密码,但不局限于此。每个信息类别有与其相应的规则集,当输入信息之后找到与其所属信息类相应的规则集。

进一步地,所述确定所述输入信息所属的信息类别包括:将所述输入信息按照树状逻辑层次划分为不同层次的信息;以及基于最高层次的信息确定所属的信息类别。

进一步地,上述方法还包括步骤s104:基于所述匹配结果查找与匹配的所述正则表达式关联的信息。也即,在匹配成功的情况下对输入信息进行赋值。

参考图2所示,为本发明提供的基于正则表达式的字符匹配系统的结构示意图,该基于正则表达式的字符匹配系统包括:

接收模块1,用于接收输入信息;

存储模块2,用于存储预设的信息类别以及表示与每类信息相关联的规则集的正则表达式,所述规则集具有树状逻辑层次,且所述正则表达式所表示的字符串对应于该规则集的树状逻辑层次的不同层次的节点数据;

匹配模块3,用于将输入信息与每个所述正则表达式匹配;

获取模块4,在匹配成功的情况下,基于匹配结果查找与匹配的所述正则表达式关联的信息。

优选,在具有多个信息类别的情况下,所述系统还包括:分类模块5,用于确定所述输入信息所属的信息类别。其中,分类模块,具体用于将所述输入信息按照树状逻辑层次划分为不同层次的信息;以及基于最高层次的信息确定所属的信息类别。

优选,信息类别至少包括以下至少一项:字符、地址、指纹和密码。

为更好的体现本申请提供的基于正则表达式的字符匹配方法,结合图3所示的表示地址的规则集介绍本申请提供的基于正则表达式的字符匹配方法在地址方面的应用。例如:运动员参加各种级别的赛事,一般根据赛事的举办地给获奖运动员颁发奖金,如图3所示的有关地址表示的一个规则集,世界级(第一层次):国际奥委会,赋值字段a;国际级(第二层次):中国、美国或者其他国家,赋值字段b;省级(第三层次):广东、湖北等省,赋值字段c;市级:深圳、潮汕等城市,,赋值字段d;a=2,b=3,c=4,d=5,但不局限于图3所示出的地址。

其中,深圳、潮汕、广东、中国、国际奥委会等节点数据以正则表达式的形式可以表示如下:

stringline1="shenzhen-5,guangdong-4,china-3,ioc-2";

stringline2="chaoshan-5,guangdong-4,china-3,ioc-2";

stringpattern1=",(shenzhen|\\s)(guangdong|\\s)(china|\\s)(ioc|\\s)-\\5+,";

stringpattern2=",(chaoshan|\\s)(guangdong|\\s)(china|\\s)(ioc|\\s)-\\5+,";

上述代码为正则表达式中的主代码部分,图3所示的规则集中的两个分支中的数据节点以正则表达式的形式表示,整个规则集可以表示为一组正则表达式。

其中,stringline(例如:stringline1或stringline2……)用于给待匹配信息进行赋值;接收输入信息之后,查找相符合的正则表达式,例如stringpattern(stringpattern1或stringpattern2……),找到关联的正则表达式,例如与stringpattern1匹配成功,然后根据stringpattern1中关联的字符串在stringline1中找到相应的赋值。

一般,预设的信息比较多,例如除了地址信息外,还包括指纹、密码等信息,根据输入信息先确定所属的信息类别,然后找到关联的规则集。例如,“中国广东深圳”,处于最高层次(也即最高阶度)的数据为深圳,确定信息分类为地址所在的规则集,然后找到与深圳相符的字符串所在的正则表达式,根据正则表达式得到相应的赋值。

上述这种基于正则表达式的字符匹配方法替代现有的if-else语句的表述,结构简单,匹配快速。

对应的基于正则表达式的字符匹配系统,包括:

接收模块,用于接收输入信息,例如“中国广东深圳”;

存储模块,用于存储预设的类别,例如以下至少一项字符、地址、指纹和密码,以及与每类信息相关联的规则集的一组正则表达式;

匹配模块,将输入的信息与正则表达式匹配;

获取模块,在匹配成功的情况下,根据匹配结果查找与匹配的正则表达式关联的信息,也即在上述方法中通过查找到相应的stringpattern,然后在与其相应的stringline中找到对应的赋值。

系统里还包括分类模块,根据输入信息确定所属的信息类别。具体的,将所述输入信息按照树状逻辑层次划分为不同层次的信息;以及基于最高层次的信息确定所属的信息类别;同时也可以根据输入信息中最高层次的信息。

本申请首次将正则表达式应用于具有逻辑层次的字符匹配中,字符匹配后能自动赋值给相应的字段,程序简单、匹配效率高。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1