CN110928793B - 一种正则表达式检测方法、装置及计算机可读存储介质 - Google Patents

一种正则表达式检测方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN110928793B
CN110928793B CN201911190391.7A CN201911190391A CN110928793B CN 110928793 B CN110928793 B CN 110928793B CN 201911190391 A CN201911190391 A CN 201911190391A CN 110928793 B CN110928793 B CN 110928793B
Authority
CN
China
Prior art keywords
regular expression
target
detection
regular
preset
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
Application number
CN201911190391.7A
Other languages
English (en)
Other versions
CN110928793A (zh
Inventor
彭冬炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201911190391.7A priority Critical patent/CN110928793B/zh
Publication of CN110928793A publication Critical patent/CN110928793A/zh
Application granted granted Critical
Publication of CN110928793B publication Critical patent/CN110928793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Machine Translation (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请提供了一种正则表达式检测方法、装置及计算机可读存储介质,首先基于待检测文件路径读取待检测文件内容;然后从待检测文件内容中提取目标正则表达式;最后基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测。通过本申请方案的实施,采用自动化方式对正则表达式进行编写准确度检测,有效提高了对正则表达式进行问题排查的测试效率和测试准确性。

Description

一种正则表达式检测方法、装置及计算机可读存储介质
技术领域
本申请涉及电子技术领域,尤其涉及一种正则表达式检测方法、装置及计算机可读存储介质。
背景技术
正则表达式是用某种已知模式去匹配一类字符串的一个字符串公式,它主要用来作为描述字符串匹配的工具。正则表达式具有很强的表达能力,它是由一些普通字符(例如字符a到z)和一些元字符(metacharacters)组成的,在例如文字过滤以及审核等业务中扮演着较为重要的角色。
正则表达式的编写需要具备较为丰富的专业知识和经验,在实际应用中经常会出现编写的正则表达式存在缺陷的问题,而在实际业务中采用有缺陷的正则表达式则可能会导致业务出错,例如业务处理效率显著降低甚至业务失败。基于此,目前会在开发人员完成正则表达式的编写之后,会对正则表达式进行问题排查,也即由专门的测试人员在做白盒审计时将正则表达式提取出来,使用测试用例来测试正则表达式是否规范,但是由于这种方式完全依赖于人工来进行,导致测试的效率和准确性较为局限。
发明内容
本申请实施例提供了一种正则表达式检测方法、装置及计算机可读存储介质,至少能够解决相关技术中由专门的测试人员对正则表达式进行人工检测,所导致的测试效率和测试准确性较为局限的问题。
本申请实施例第一方面提供了一种正则表达式检测方法,包括:
基于待检测文件路径读取待检测文件内容;
从所述待检测文件内容中提取目标正则表达式;
基于预设的正则表达式测试规则,对所述目标正则表达式进行编写准确度检测。
本申请实施例第二方面提供了一种正则表达式检测装置,包括:
读取模块,用于基于待检测文件路径读取待检测文件内容;
提取模块,用于从所述待检测文件内容中提取目标正则表达式;
检测模块,用于基于预设的正则表达式测试规则,对所述目标正则表达式进行编写准确度检测。
本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述本申请实施例第一方面提供的正则表达式检测方法中的各步骤。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的正则表达式检测方法中的各步骤。
由上可见,根据本申请方案所提供的正则表达式检测方法、装置及计算机可读存储介质,基于待检测文件路径读取待检测文件内容;从待检测文件内容中提取目标正则表达式;基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测。通过本申请方案的实施,采用自动化方式对正则表达式进行编写准确度检测,有效提高了对正则表达式进行问题排查的测试效率和测试准确性。
附图说明
图1为本申请第一实施例提供的正则表达式检测方法的基本流程示意图;
图2为本申请第一实施例提供的一种基于NFA的文本匹配示意图;
图3为本申请第一实施例提供的一种编写准确度检测方法的流程示意图;
图4为本申请第一实施例提供的另一种编写准确度检测方法的流程示意图;
图5为本申请第一实施例提供的检测结果展示界面的示意图;
图6为本申请第二实施例提供的正则表达式检测方法的细化流程示意图;
图7为本申请第三实施例提供的一种正则表达式检测装置的程序模块示意图;
图8为本申请第三实施例提供的另一种正则表达式检测装置的程序模块示意图;
图9为本申请第四实施例提供的电子装置的结构示意图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决相关技术中由专门的测试人员对正则表达式进行人工检测,所导致的测试效率和测试准确性较为局限的技术问题,本申请第一实施例提供了一种正则表达式检测方法,如图1为本实施例提供的正则表达式检测方法的基本流程图,该正则表达式检测方法包括以下的步骤:
步骤101、基于待检测文件路径读取待检测文件内容。
具体的,在本实施例中,测试人员可以对特定的本地文件或本地文件夹进行检测,其中,在测试人员打开路径之后,进行判断,若是单独的文件,则可直接按照文件路径对该文件进行读取,而若是一个文件夹,则可以递归逐层读取文件夹中所有文件的路径,然后再按照所读取的所有文件路径进行文件夹内文件的内容读取。
在本实施例一种可选的实施方式中,在基于待检测文件路径读取待检测文件内容之前,还包括:判断当前的文件属性是否满足预设的检测触发条件;若是,则执行基于待检测文件路径读取待检测文件内容的步骤。
具体的,在本实施例中,基于本地的文件属性进行是否满足触发本实施例的正则表达式检测流程的判断,仅在满足判断条件的情况下才触发上述步骤101,以提升正则表达式检测的智能性,在一定程度上可有效节省终端的处理性能。
步骤102、从待检测文件内容中提取目标正则表达式。
具体的,在本实施例中,正则表达式(Regex,Regular Expression)用于实现对文本中的数据进行匹配校验,在实际应用中,当编写校验的正则表达式存在缺陷或者不严谨时,攻击者可以构造特殊的字符串来大量消耗服务器的系统资源,造成服务器的服务中断或停止,其中一种典型的攻击方式为正则表达式拒绝服务攻击(ReDoS)。
而正则表达式引擎则是实现正则表达式功能的功能实现载体,将正则表达式编译为有限状态自动机,然后采用有限状态自动机来对待匹配文本进行匹配。其中,在编译正则表达式时,可以采用汤普森构造算法将正则表达式编译为非确定性有限状态自动机DFA,也可以是采用Powerset construction算法将正则表达式编译为确定性有限状态自动机NFA。
应当说明的是,两类引擎要顺利工作,都必须有一个正则表达式和一个文本串,一个捏在手里,一个吃下去。DFA捏着文本串去比较正则式,看到一个子正则式,就把可能的匹配串全标注出来,然后再看正则式的下一个部分,根据新的匹配结果更新标注。而NFA是捏着正则式去比文本,吃掉一个字符,就把它跟正则式比较,匹配就记下来:“某年某月某日在某处匹配上了!”,然后接着往下干。一旦不匹配,就把刚吃的这个字符吐出来,一个个的吐,直到回到上一次匹配的地方。
本实施例下面以一个具体例子对上述两类引擎的工作原理进行详细说明。现在有个文本为:perlmanbook,一个正则表达式为/perl|perlman/,在使用NFA进行匹配时,第一个子正则表达式为/perl/,而该引擎针对perlmanbook字符串进行扫描,从左开始,当进度进行到perlmanbook的时候,最开始部分的perl已经和第一个子正则表达式匹配上,而当引擎进度扫描到m字符的时候,发现与第一个子正则表达式不匹配,于是把m吐出来,向上汇报已成功匹配perl,而不再关心其它,也不尝试第二个子正则表达式/perlman/。而若在DFA引擎的情况下,它是以文本为导向,针对正则表达式从左开始进行扫描,当扫描到/p/的时候,发现匹配上了,然后继续往下匹配,当将第一个子正则表达式/perl/全部匹配上之后,这时候就会把这个子正则表达式甩开,去匹配第二个子正则表达式的/p/,直到把正则表达式的所有子正则表达式匹配完,才会输出成功匹配'perlman'。
由此可见,两个引擎其实存在本质上的差别:DFA对于文本串里的每一个字符只需扫描一次,比较快,但特性较少;而NFA则要翻来覆去吃字符、吐字符,速度慢,但是特性丰富,所以反而应用广泛,当今主要的正则表达式引擎,如Perl、Ruby、Python的re模块、Java和.NET的regex库,都是NFA的,如图2所示为本实施例提供的一种基于NFA的文本匹配示意图,所用的正则表达式为(a|b)*abb。而在实际应用中,NFA可能会陷入递归调用的陷阱而表现得性能极差,造成ReDoS问题。
步骤103、基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测。
具体的,在本实施例中,只需要将待排查的文件路径输入,等待结果即可,达到自动化检测省时省力的目的。采取基于自动化的技术排查,由于测试活动中正则表达式的排查一直算是比较麻烦的一块,人工的排查费时费力,通过自动化以后,可以不停的添加新的规则,使方案最终投入使用时节省时间,提高效率。在实际应用中,ReDoS的判断规则可进行持续更新和完善,以进一步提高正则表达式的准确度检测的准确性。应当理解的是,本实施例的编写准确度可以为具体的准确度数值,也可以仅包括编写准确和编写不准确两种表现形式。
在本实施例一种可选的实施方式中,正则表达式测试规则为标准语法规则,基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测包括:基于预设的标准语法规则,对目标正则表达式进行语法分析;基于语法分析结果检测目标正则表达式的编写准确度。
具体的,在本实施例中,基于正则表达式的书写规范得到正则表达式的编写规则定义,例如字符位置、字符间关系、字符数量等,本实施例基于标准规则对正则表达式进行语法分析,通过正则表达式的语法正确度来关联其编写准确度。
如图3所示为本实施例提供的一种编写准确度检测方法的流程示意图,在本实施例一种可选的实施方式中,正则表达式测试规则包括正则表达式拆分子规则和正则表达式检测子规则,基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测具体包括以下步骤:
步骤301、基于正则表达式拆分子规则将目标正则表达式拆分为多个目标子正则表达式;
步骤302、基于正则表达式检测子规则对多个目标子正则表达式进行检测;
步骤303、通过检测结果确定目标正则表达式的编写准确度。
具体的,本实施例将各正则表达式拆分成多个子正则表达式,并基于子正则表达式的检测结果来确定正则表达式的编写准确度。一方面,将正则表达式的编写准确度评价细分至各子正则表达式,检测结果对细节的把握更强,从而可以有效提高检测准确性;另一方面,在实际应用中,正则表达式的复杂度有所不同,对于部分相对复杂的正则表达式,全局进行编写准确度检测可能会耗费终端较多的处理性能,且对检测效率也有较大影响,而拆分至子正则表达式进行检测,则允许将正则表达式进行阶段性检测,例如可以在检测部分子正则表达式,将这部分子正则表达式的检测结果直接作为整个正则表达式的编写准确度检测结果。
在本实施例一种可选的实施方式中,基于正则表达式检测子规则对多个目标子正则表达式进行检测包括:基于正则表达式检测子规则,在预设的检测规模下对多个目标子正则表达式进行检测。
具体的,本实施例出于检测效率、检测结果的准确性等多方面的综合考虑,在正则表达式中选择特定检测规模的子正则表达式进行检测。
在实际应用中,在预设的检测规模下对多个目标子正则表达式进行检测包括但不限于以下两种方式:
方式一,从多个目标子正则表达式中选取预设数量的目标子正则表达式进行检测。
具体的,本实施例可以从拆分出的所有子正则表达式中选择预设数量的子正则表达式进行检测,这里的选择方式可以采用随机选择方式,或者顺序选择方式,在此不作唯一限定。
方式二,从多个目标子正则表达式中,选取检测优先级高于预设的优先级阈值的目标子正则表达式进行检测。
具体的,在本实施例中,考虑到不同的子正则表达式在整个正则表达式中所起的重要性有所不同,其中,重要性强的子正则表达式对整个正则表达式的文本匹配检测功能影响较大,应当是检测重点。应当理解的是,本实施例中的检测优先级正相关于子正则表达式的重要性。
如图4所示为本实施例提供的另一种编写准确度检测方法的流程示意图,在本实施例一种可选的实施方式中,基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测具体包括以下步骤:
步骤401、获取目标正则表达式所对应的业务所产生的目标文本数据;
步骤402、基于目标文本数据对目标正则表达式进行匹配;
步骤403、基于匹配结果检测目标正则表达式的编写准确度。
具体的,在本实施例中,还可以将对应于正则表达式的业务数据作为测试用例,来对正则表达式进行排查,具体排查方式则是通过正则表达式对文本数据进行匹配,通过匹配度来表征正则表达式的编写准确度。应当理解的是,在实际应用中,为了提高正则表达式的检测准确性,可以尽可能的提高文本数据的规模。
在本实施例一种可选的实施方式中,在基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测之后,还包括:将编写准确度低于预设的准确度阈值的目标正则表达式,确定为问题正则表达式;对问题正则表达式,以及对应于问题正则表达式的文件路径进行输出。
具体的,本实施例在完成正则表达式的检测之后,还对问题正则表达式输出提示,具体输出内容包括问题正则表达式所对应的文件路径以及该正则表达式本身,以有效指示开发人员对正则表达式进行修正,提高开发人员的工作效率。在实际应用中,提示输出方式可以为显示输出,具体请参阅如图5所示的本实施例的检测结果展示界面的示意图,在界面上对正则表达式具体内容和路径进行展示。
此外,还应当说明的是,在本实施例中还可以在确定问题正则表达式之后,基于标准编写规则确定推荐补正数据,然后在接收到外部针对推荐补正数据输入的确认补正指令时,基于推荐补正数据对问题正则表达式进行自动补正,以进一步简化开发人员的操作。
基于上述本申请实施例的技术方案,基于待检测文件路径读取待检测文件内容;从待检测文件内容中提取目标正则表达式;基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测。通过本申请方案的实施,采用自动化方式对正则表达式进行编写准确度检测,有效提高了对正则表达式进行问题排查的测试效率和测试准确性。
图6中的方法为本申请第二实施例提供的一种细化的正则表达式检测方法,该正则表达式检测方法包括:
步骤601、基于待检测文件路径读取待检测文件内容。
应当说明的是,若对本地文件夹进行检测,则可以递归逐层读取文件夹中所有文件的路径,然后再按照所读取的所有文件路径进行文件夹内文件的内容读取。
步骤602、从待检测文件内容中提取目标正则表达式。
具体的,正则表达式(Regex,Regular Expression)用于实现对文本中的数据进行匹配校验,在实际应用中,当编写校验的正则表达式存在缺陷或者不严谨时,攻击者可以构造特殊的字符串来大量消耗服务器的系统资源,造成服务器的服务中断或停止。
步骤603、基于预设的正则表达式拆分规则将目标正则表达式拆分为多个目标子正则表达式。
本实施例将各正则表达式拆分成多个子正则表达式,并基于子正则表达式的检测结果来确定正则表达式的编写准确度。
步骤604、从多个目标子正则表达式中,选取检测优先级高于预设的优先级阈值的目标子正则表达式。
步骤605、基于预设的正则表达式检测规则,对所选取的目标子正则表达式进行检测。
在本实施例中,考虑到不同的子正则表达式在整个正则表达式中所起的重要性有所不同,其中,重要性强的子正则表达式对整个正则表达式的文本匹配检测功能影响较大,应当是检测重点。应当理解的是,本实施例中的检测优先级正相关于子正则表达式的重要性。
步骤606、通过检测结果确定目标正则表达式的编写准确度。
在本实施例中,只需要将待排查的文件路径输入,等待结果即可,达到自动化检测省时省力的目的。并且,通过自动化以后,可以不停的添加新的规则,使方案最终投入使用时节省时间,提高效率
步骤607、将编写准确度低于预设的准确度阈值的目标正则表达式,确定为问题正则表达式。
步骤608、对问题正则表达式,以及对应于问题正则表达式的文件路径进行输出。
本实施例在完成正则表达式的检测之后,还对问题正则表达式输出提示,具体输出内容包括问题正则表达式所对应的文件路径以及该正则表达式本身,以有效指示开发人员对正则表达式进行修正,提高开发人员的工作效率。
应当理解的是,本实施例中各步骤的序号的大小并不意味着步骤执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成唯一限定。
本申请实施例公开了一种正则表达式检测方法,基于待检测文件路径读取待检测文件内容;从待检测文件内容中提取目标正则表达式;基于预设的正则表达式拆分规则将目标正则表达式拆分为多个目标子正则表达式;基于预设的正则表达式检测规则,对所选取的检测优先级高于预设的优先级阈值的目标子正则表达式进行检测,并通过检测结果确定目标正则表达式的编写准确度;将编写准确度低于预设的准确度阈值的目标正则表达式,确定为问题正则表达式,并对问题正则表达式,以及对应于问题正则表达式的文件路径进行输出。通过本申请方案的实施,采用自动化方式对正则表达式进行编写准确度检测,有效提高了对正则表达式进行问题排查的测试效率和测试准确性,并对问题正则表达式输出提示,提高了开发人员的工作效率。
图7为本申请第三实施例提供的一种正则表达式检测装置。该正则表达式检测装置可用于实现前述实施例中的正则表达式检测方法。如图7所示,该正则表达式检测装置主要包括:
读取模块701,用于基于待检测文件路径读取待检测文件内容;
提取模块702,用于从待检测文件内容中提取目标正则表达式;
检测模块703,用于基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测。
在本实施例一种可选的实施方式中,正则表达式测试规则为标准语法规则,检测模块703具体用于:基于预设的标准语法规则,对目标正则表达式进行语法分析;基于语法分析结果检测目标正则表达式的编写准确度。
在本实施例一种可选的实施方式中,正则表达式测试规则包括正则表达式拆分子规则和正则表达式检测子规则,检测模块703具体用于:基于正则表达式拆分子规则将目标正则表达式拆分为多个目标子正则表达式;基于正则表达式检测子规则对多个目标子正则表达式进行检测;通过检测结果确定目标正则表达式的编写准确度。
进一步地,在本实施例一种可选的实施方式中,检测模块703在基于正则表达式检测子规则对多个目标子正则表达式进行检测时,具体用于:基于正则表达式检测子规则,在预设的检测规模下对多个目标子正则表达式进行检测。
更进一步地,在本实施例一种可选的实施方式中,检测模块703在预设的检测规模下对多个目标子正则表达式进行检测时,具体用于:从多个目标子正则表达式中选取预设数量的目标子正则表达式进行检测;或,从多个目标子正则表达式中,选取检测优先级高于预设的优先级阈值的目标子正则表达式进行检测。
在本实施例一种可选的实施方式中,检测模块703具体用于:获取目标正则表达式所对应的业务所产生的目标文本数据;基于目标文本数据对目标正则表达式进行匹配;基于匹配结果检测目标正则表达式的编写准确度。
如图8所示为本实施例提供的另一种正则表达式检测装置,在本实施例一种可选的实施方式中,正则表达式检测装置还包括:确定模块704和输出模块705,其中,确定模块704用于在基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测之后,将编写准确度低于预设的准确度阈值的目标正则表达式,确定为问题正则表达式;输出模块705用于对问题正则表达式,以及对应于问题正则表达式的文件路径进行输出。
应当说明的是,第一、二实施例中的正则表达式检测方法均可基于本实施例提供的正则表达式检测装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的正则表达式检测装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本实施例所提供的正则表达式检测装置,基于待检测文件路径读取待检测文件内容;从待检测文件内容中提取目标正则表达式;基于预设的正则表达式测试规则,对目标正则表达式进行编写准确度检测。通过本申请方案的实施,采用自动化方式对正则表达式进行编写准确度检测,有效提高了对正则表达式进行问题排查的测试效率和测试准确性。
请参阅图9,图9为本申请第四实施例提供的一种电子装置。该电子装置可用于实现前述实施例中的正则表达式检测方法。如图9所示,该电子装置主要包括:
存储器901、处理器902、总线903及存储在存储器901上并可在处理器902上运行的计算机程序,存储器901和处理器902通过总线903连接。处理器902执行该计算机程序时,实现前述实施例中的正则表达式检测方法。其中,处理器的数量可以是一个或多个。
存储器901可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器901用于存储可执行程序代码,处理器902与存储器901耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述图9所示实施例中的存储器。
该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的正则表达式检测方法。进一步的,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的正则表达式检测方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (9)

1.一种正则表达式检测方法,其特征在于,包括:
判断当前的文件属性是否满足预设的检测触发条件;
若是,则基于待检测文件路径读取待检测文件内容;
从所述待检测文件内容中提取目标正则表达式;
基于预设的正则表达式测试规则,对所述目标正则表达式进行编写准确度检测;
将所述编写准确度低于预设的准确度阈值的所述目标正则表达式,确定为问题正则表达式;
对所述问题正则表达式,以及对应于所述问题正则表达式的文件路径进行输出。
2.根据权利要求1所述的正则表达式检测方法,其特征在于,所述正则表达式测试规则为标准语法规则,所述基于预设的正则表达式测试规则,对所述目标正则表达式进行编写准确度检测包括:
基于预设的标准语法规则,对所述目标正则表达式进行语法分析;
基于语法分析结果检测所述目标正则表达式的编写准确度。
3.根据权利要求1所述的正则表达式检测方法,其特征在于,所述正则表达式测试规则包括正则表达式拆分子规则和正则表达式检测子规则,所述基于预设的正则表达式测试规则,对所述目标正则表达式进行编写准确度检测包括:
基于所述正则表达式拆分子规则将所述目标正则表达式拆分为多个目标子正则表达式;
基于所述正则表达式检测子规则对所述多个目标子正则表达式进行检测;
通过检测结果确定所述目标正则表达式的编写准确度。
4.根据权利要求3所述的正则表达式检测方法,其特征在于,所述基于所述正则表达式检测子规则对所述多个目标子正则表达式进行检测包括:
基于所述正则表达式检测子规则,在预设的检测规模下对所述多个目标子正则表达式进行检测。
5.根据权利要求4所述的正则表达式检测方法,其特征在于,所述在预设的检测规模下对所述多个目标子正则表达式进行检测包括:
从所述多个目标子正则表达式中选取预设数量的目标子正则表达式进行检测;
或,从所述多个目标子正则表达式中,选取检测优先级高于预设的优先级阈值的目标子正则表达式进行检测。
6.根据权利要求1所述的正则表达式检测方法,其特征在于,所述基于预设的正则表达式测试规则,对所述目标正则表达式进行编写准确度检测包括:
获取所述目标正则表达式所对应的业务所产生的目标文本数据;
基于所述目标文本数据对所述目标正则表达式进行匹配;
基于匹配结果检测所述目标正则表达式的编写准确度。
7.一种正则表达式检测装置,其特征在于,包括:
读取模块,用于判断当前的文件属性是否满足预设的检测触发条件;若是,则基于待检测文件路径读取待检测文件内容;
提取模块,用于从所述待检测文件内容中提取目标正则表达式;
检测模块,用于基于预设的正则表达式测试规则,对所述目标正则表达式进行编写准确度检测;
确定模块,用于将所述编写准确度低于预设的准确度阈值的所述目标正则表达式,确定为问题正则表达式;
输出模块,用于对所述问题正则表达式,以及对应于所述问题正则表达式的文件路径进行输出。
8.一种电子装置,包括:存储器、处理器及总线,其特征在于,所述总线用于实现所述存储器、处理器之间的连接通信;所述处理器用于执行存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至6中任意一项所述方法中的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至6中的任意一项所述方法中的步骤。
CN201911190391.7A 2019-11-28 2019-11-28 一种正则表达式检测方法、装置及计算机可读存储介质 Active CN110928793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911190391.7A CN110928793B (zh) 2019-11-28 2019-11-28 一种正则表达式检测方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911190391.7A CN110928793B (zh) 2019-11-28 2019-11-28 一种正则表达式检测方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110928793A CN110928793A (zh) 2020-03-27
CN110928793B true CN110928793B (zh) 2023-07-28

Family

ID=69847415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911190391.7A Active CN110928793B (zh) 2019-11-28 2019-11-28 一种正则表达式检测方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110928793B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115796166B (zh) * 2023-02-06 2023-05-09 华侨大学 一种智慧物流控制系统的正则表达式测试方法和系统
CN116366377B (zh) * 2023-06-02 2023-11-07 深信服科技股份有限公司 恶意文件检测方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462158A (zh) * 2013-09-25 2015-03-25 北大方正集团有限公司 数据抓取方法和数据抓取系统
CN109918676A (zh) * 2019-03-18 2019-06-21 广东小天才科技有限公司 一种检测意图正则表达式的方法及装置、终端设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949670B2 (en) * 2007-03-16 2011-05-24 Microsoft Corporation Language neutral text verification
CN101360088B (zh) * 2007-07-30 2011-09-14 华为技术有限公司 正则表达式编译、匹配系统及编译、匹配方法
US20090070327A1 (en) * 2007-09-06 2009-03-12 Alexander Stephan Loeser Method for automatically generating regular expressions for relaxed matching of text patterns
CN102523219B (zh) * 2011-12-16 2015-01-14 清华大学 正则表达式匹配系统及匹配方法
US9558299B2 (en) * 2012-04-30 2017-01-31 Hewlett Packard Enterprise Development Lp Submatch extraction
CN107291761A (zh) * 2016-04-05 2017-10-24 北京优朋普乐科技有限公司 一种正则表达式的匹配方法和装置
CN109726312B (zh) * 2018-12-25 2021-10-08 广州虎牙信息科技有限公司 一种正则表达式检测方法、装置、设备和存储介质
CN109800432A (zh) * 2019-01-24 2019-05-24 出门问问信息科技有限公司 评估语义理解准确率的方法、装置、存储介质和电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462158A (zh) * 2013-09-25 2015-03-25 北大方正集团有限公司 数据抓取方法和数据抓取系统
CN109918676A (zh) * 2019-03-18 2019-06-21 广东小天才科技有限公司 一种检测意图正则表达式的方法及装置、终端设备

Also Published As

Publication number Publication date
CN110928793A (zh) 2020-03-27

Similar Documents

Publication Publication Date Title
CN108614707B (zh) 静态代码检查方法、装置、存储介质和计算机设备
CN109375945B (zh) 物联网设备的固件版本探测方法及漏洞修复率评估方法
CN110427331B (zh) 基于接口测试工具自动生成性能测试脚本的方法
CN108459954B (zh) 应用程序漏洞检测方法和装置
US20120192279A1 (en) Malware detection using external call characteristics
CN110704304B (zh) 一种应用程序测试方法、装置、存储介质和服务器
US20120072988A1 (en) Detection of global metamorphic malware variants using control and data flow analysis
CN110928793B (zh) 一种正则表达式检测方法、装置及计算机可读存储介质
US10552299B1 (en) Method and apparatus for AI-driven automatic test script generation
CN109271315B (zh) 脚本代码检测方法、装置、计算机设备及存储介质
US10628630B1 (en) Method and apparatus for generating a state machine model of an application using models of GUI objects and scanning modes
US10579799B2 (en) System and method for execution of objects lacking rules of interpretation
CN115269444B (zh) 代码静态检测方法、装置及服务器
WO2017044069A1 (en) Automatic regression identification
CN114911711A (zh) 一种代码缺陷分析方法、装置、电子设备及存储介质
JP2020144842A (ja) コンピュータ可読プログラム検査のための入力の生成
CN110287700B (zh) 一种iOS应用安全分析方法及装置
JP2018018373A (ja) 抽出装置および抽出方法
CN116346456A (zh) 业务逻辑漏洞攻击检测模型训练方法及装置
US20080104576A1 (en) Method and arrangement for locating input domain boundaries
CN111324892B (zh) 生成脚本文件的软件基因和脚本检测的方法、装置及介质
CN112084108A (zh) 一种测试脚本生成方法、装置及相关组件
CN116340941A (zh) 一种静态代码扫描方法、装置、设备及介质
CN115309661A (zh) 一种应用测试方法、装置、电子设备及可读存储介质
CN114706769A (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