正则表达式库在公安交管业务数据中的应用研究论文_朱晓光1,李冬亮2,尹沫洋2,杨灿3

 1安徽畅通行交通信息服务有限公司 安徽合肥 230088安徽科力信息产业有限责任公司 安徽合肥 230088北京航空航天大学合肥创新研究院 安徽合肥 230000

摘要:基于公安交管综合业务数据的特征、历史的数据异常特征、缺失值分布特征等设计和建设公安交管综合业务数据标准正则式库,规范公安交管综合业务数据值。建立表内、表间、各业务逻辑间关系表达式,主要包括表内数据项正则表达式管理、表间规则库管理、跨业务规则库管理等,能够根据表内、表间、各业务逻辑间的关系建立标准正则式库。

关键词:正则表达式库;公安交管业务数据;数据梳理

1.引言

伴随着国家信息化进程的加速和深化,我国社会逐步走向信息化、网络化、数字化,社会已经从信息缺乏的时代过渡到了信息极大丰富的时代,公安交管信息系统不断建立和完善,在实际公安交管业务工作中,利用信息化手段采集了大量信息。多年来,公安交管在逐步推进信息化建设,使信息化程度不断得到提高,通过数据库的建设和数据的收集已经积累了大规模的公安工作数据和社会信息,包括车辆管理信息数据、事故数据、道路检测器数据(感应线圈检测器、视频卡口检测器等)、车辆GPS数据(浮动车数据)等等。庞大规模的数据和信息能够为公安交管开展业务提供一定的指导,但同时也决定了其研究分析任务的繁重性。面对这一情况,需要寻找一种能够从海量数据中抽取有用信息的辅助工具,将数据抽取化繁为简,提高数据分析的效率。

本文针对公安交管业务异常数据人工评估效率低、覆盖范围小、难以为业务开展提供有效指导等突出应用问题,设计公安交管综合业务数据标准正则式库,为公安交管业务提供异常数据分析的重要基础工具和数据标准规范,具有较强的实战应用需求和良好应用前景。

2.正则表达式

正则表达式(Regular Expression,RE)也叫做匹配模式(Pattern)它由一组具有特定含义的字符串组成,通常用于匹配和替换文本。正则表达式也译为正规表示法、常规表示法,在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。通过对正则表达式集合进行分组能实现高性能正则表达式匹配。如Yu等[1]指出正则表达式集合的分组问题。徐乾等[2]提出了一种基于正则表达式的压缩算法。肖武德通过计算正则表达式两两之间的冲突比率,将低于某个数值的表达式提取出来,对剩下的表达式分组,然后将事先提取出来的表达式合理地加进去。张树壮等提出基于猜测-验证的匹配方法。罗青林等通过采集网络数据流,对流量进行统计分析,根据计算出来的概率进行分组。魏强等在Fang Yu算法的基础上,提出基于图划分的正则表达式分组算法。柳厅文等证明了当冲突非负和冲突独立时,正则表达式集合的最优k分组问题是NP-Hard的,且基于局部搜索思想,提出GRELS(grouping regular expression with local searching)分组算法。蔡良伟等提出基于蚁群优化的改进正则表达式分组算法(grouping regular expression with ant colony optimization,GRE-ACO)。

正则表达式常用场合有如下四种:

(1)测试字符串的某个模式。

(2)替换文本。

(3)根据模式匹配从字符串中提取一个子字符串。

(4)根据模式匹配从批量文件字符串中提取符合特定模式的批量字符串。

正则表达式的语法简介如下所示:

/匹配对象的模式/

其中,位于//之间的部分就是将要在目标字符串中进行匹配的模式。在使用时,用户只需要将希望查找的匹配对象模板内放入//定界符之间即可。例如,匹配网址 URL 的正则表达式代码:/[a-zA-z]+://[^\s]*/。

3.正则表达式库在公安交管业务数据中的应用

3.1 基于正则表达式的跨业务规则表达方法解决方案

公安交管业务数据量大,数据种类多,涉及变量种类丰富,在研究、使用过程中会面临许多问题。利用正则式来描述表间和跨业务规则,便可以大大提高公安交管业务数据处理效率。研究基于正则式的跨业务表达方法的基础是对公安交管业务的分析,包括业务分类、业务关联分析以及业务数据提取。正则表达式作为一种描述数据构成规则的工具,其使用的必然前提是对数据的分析,具体以单一表的数据构成规则分析为基础;然后,分析单一业务所需数据(单表或多表)和多业务联合的数据构成规则;最后利用正则表达式凝练出跨业务规则表达方法,并构建正则表达式库。

3.2 公安交管业务数据正则式库

基于上述内容,最终对各公安交管业务数据建立正则表达式库,部分典型实例如下表所示。

根据公安交管业务数据的数据构成规则分析,可以使用Phon高级编程语言中的re库对正则表达式进行操作。Re库是Python的标准库,主要用于字符串匹配,该库采用raw string类型表示正则式,表示为:r‘text’,其中raw string是不包括对转义字符再次转义的的字符串。re库的调用方式为,在Python编译器中使用语句“import re”,具体功能函数包括:

(1)re.search()在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象。

(2)re.match()从一个字符串的开始位置起匹配正则表达式,返回match对象。

(3)re.findall()搜索字符串,以列表类型返回全部能匹配的子串。

(4)re.split()将一个字符串按照正则表达式匹配结果进行分割,返回列表类型。

(5)re.finditer()搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象。

(6)re.sub()在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串。

利用re标准库提供的功能函数以及凝练的公安交管数据正则表达库,并进行多种方式地灵活组合、匹配,构成强大的工具,形成基于正则式的跨业务规则表达方法,以在公安交管业务数据录入和检测过程发挥重要作用。

4 结束语

本文通过使用基于正则式的跨业务规则表达方法来建立公安交管综合业务数据标准正则式库,建立表内、表间各各业务逻辑关系表达式,能够有效解决目前公安交管业务中的大量异常数据人工分析效益低、范围小等实际问题,为公安交管业务提供异常数据分析的重要基础工具和数据标准规范。

参考文献

[1]徐乾,鄂跃鹏,葛敬国,等.深度包检测中一种高效的正则表达式压缩算法[J].软件学报,2009,20(8):2214-2226.

[2]肖武德.一种正则表达式的高效分组算法[J].计算机安全,2010(4):57-59.

论文作者:朱晓光1,李冬亮2,尹沫洋2,杨灿3

论文发表刊物:《建筑学研究前沿》2018年第28期

论文发表时间:2019/1/3

标签:;  ;  ;  ;  ;  ;  ;  ;  

正则表达式库在公安交管业务数据中的应用研究论文_朱晓光1,李冬亮2,尹沫洋2,杨灿3
下载Doc文档

猜你喜欢