CN111159497B - 正则表达式的生成方法及基于正则表达式的数据提取方法 - Google Patents
正则表达式的生成方法及基于正则表达式的数据提取方法 Download PDFInfo
- Publication number
- CN111159497B CN111159497B CN201911417417.7A CN201911417417A CN111159497B CN 111159497 B CN111159497 B CN 111159497B CN 201911417417 A CN201911417417 A CN 201911417417A CN 111159497 B CN111159497 B CN 111159497B
- Authority
- CN
- China
- Prior art keywords
- extracted
- field
- regular expression
- character
- characters
- 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
- 230000014509 gene expression Effects 0.000 title claims abstract description 313
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000013075 data extraction Methods 0.000 title claims abstract description 35
- 238000001914 filtration Methods 0.000 claims abstract description 35
- 238000000926 separation method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000011218 segmentation Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 101100513046 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) eth-1 gene Proteins 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 1
- 238000012795 verification 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/903—Querying
- G06F16/9032—Query formulation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Character Input (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种正则表达式的生成方法及基于正则表达式的数据提取方法。其中,该正则表达式的生成方法包括:确定原始数据字符串中待提取字段和非待提取字段;针对非待提取字段,进行通配过滤获得其正则表达式,针对待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达式;将待提取字段的正则表达式和非待提取字段的正则表达式,按照待提取字段和非待提取字段在原始数据字符串中的排列顺序进行合并,以获得原始数据的正则表达式。通过本发明,可减少了正则表达式的书写难度,提升数据提取效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种正则表达式的生成方法及基于正则表达式的数据提取方法。
背景技术
在现有的数据提取技术,利用正则表达式提取是较为常用的方式。在数据提取的实现过程中,需要编写人员根据数据样例,手动编写正则表达式。
然而,正则表达式语义晦涩,需要编写人员具备非常专业的技巧,编写完毕后,还要用新的数据验证正则表达式。一个擅长正则表达式的熟练工,做完这个流程,往往仍需要几十分钟,甚至几个小时。编写正则表达式花费编写人员非常多的时间和精力,这也造成利用正则表达式从原始数据中提取数据工作效率低下。
针对相关技术中正则表达式需要人工编写,难度大耗时久,进而影响数据处理效率的问题,目前尚未提出有效的解决方案。
发明内容
本发明的目的是提供一种正则表达式的生成方法、基于正则表达式的数据提取方法、装置、计算机设备和存储介质,用于解决现有技术中正则表达式需要人工编写,难度大耗时久,进而影响数据处理效率的问题。
根据本发明实施例的一个方面,为实现上述目的,本发明提供了一种正则表达式的生成方法。
该正则表达式的生成方法包括:确定原始数据字符串中待提取字段和非待提取字段;针对非待提取字段,进行通配过滤获得其正则表达式,针对待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达式;将待提取字段的正则表达式和非待提取字段的正则表达式,按照待提取字段和非待提取字段在原始数据字符串中的排列顺序进行合并,以获得原始数据的正则表达式。
进一步地,针对非待提取字段,进行通配过滤获得其正则表达式,针对待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达式,包括:根据确定的待提取字段判断原始数据字符串是否属于特殊样例;若判定原始数据字符串不属于特殊样例,针对每个非待提取字段,获取该非待提取字段后面相邻位置的待提取字段的前面一个字符,作为对该非待提取字段的分隔字符T进行通配过滤获得包含[^T]和T形式的正则表达式;针对每个待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达,其中,数字0至9对应表达式\d,单词字符对应\w,特殊字符在前面位置加上转义字符\或\\。
进一步地,根据确定的待提取字段判断原始数据字符串是否属于特殊样例,包括:判断待提取字段前后字符是否均为特殊字符,若否,判定属于特殊样例;和/或,判断待提取字段前后字符是否相邻,若否,判定属于特殊样例。
进一步地,在待提取字段前后字符不均为特殊字符时,方法包括:以首个非待提取字段最后一个字符作为起始位置,逐个字符往前搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将首个非待提取字段中第一个搜寻到的特殊字符之前的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;统计首个非待提取字段中第一个搜寻到的特殊字符与后面相邻位置的首个待提取字段之间的非特殊字符的字符数量n,生成对应的正则表达式为\w{n};针对两个待提取字段之间的非待提取字段,从该非待提取字段第一个字符作为起始位置,逐个字符往后搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将该非待提取字段中第一个搜寻到的特殊字符之后的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;统计两个待提取字段之间的非待提取字段中第一个搜寻到的特殊字符与前面相邻位置的待提取字段之间的非特殊字符的字符数量m,生成对应的正则表达式为\w{m}。
进一步地,在待提取字段前后字符相邻时,方法包括:判断相邻的两个待提取字段连接处是否为非特殊字符;若是,则相邻的两个待提取字段中位置处于后面的待提取字段采用精确匹配方式生成正则表达式;相邻的两个待提取字段中位置处于前面的待提取字段采用遍历字符串将字符与表达式一一对应的方式生成正则表达式,非待提取字段通过通配过滤方式获得其正则表达式;若不是,则待提取字段采用遍历字符串将字符与表达式一一对应的方式生成正则表达式,非待提取字段通过通配过滤方式获得其正则表达式。
根据本发明实施例的一个方面,为实现上述目的,本发明提供了一种基于正则表达式的数据提取方法,该方法包括:获取所需数据提取的原始数据;分析原始数据,生成对应的正则表达式;根据生成的正则表达式对所需数据提取的原始数据进行数据提取;其中,通过前述的正则表达式的生成方法生成对应的正则表达式。
根据本发明实施例的一个方面,为实现上述目的,本发明提供了一种正则表达式的生成装置。
该正则表达式的生成装置包括:确定模块,用于确定原始数据字符串中待提取字段和非待提取字段;第一生成控制模块,针对非待提取字段,进行通配过滤获得其正则表达式,针对待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达式;第二生成控制模块,用于将待提取字段的正则表达式和非待提取字段的正则表达式,按照待提取字段和非待提取字段在原始数据字符串中的排列顺序进行合并,以获得原始数据的正则表达式。
进一步地,第一生成控制模块包括:判断单元,用于根据确定的待提取字段判断原始数据字符串是否属于特殊样例;第一生成控制单元,用于在判断单元判定结果为原始数据字符串不属于特殊样例时,针对每个非待提取字段,获取该非待提取字段后面相邻位置的待提取字段的前面一个字符,作为对该非待提取字段的分隔字符T进行通配过滤获得包含[^T]和T形式的正则表达式;第二生成控制单元,用于在判断单元判定结果为原始数据字符串不属于特殊样例时,针对每个待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达,其中,数字0至9对应表达式\d,单词字符对应\w,特殊字符在前面位置加上转义字符\或\\。
进一步地,判断单元包括:第一判断子单元,用于判断待提取字段前后字符是否均为特殊字符,若否,判定属于特殊样例;和/或,第二判断子单元,用于判断待提取字段前后字符是否相邻,若否,判定属于特殊样例。
进一步地,在待提取字段前后字符不均为特殊字符时,装置包括:第三生成控制单元,用于在第一判断子单元判断结果为待提取字段前后字符不均为特殊字符时,以首个非待提取字段最后一个字符作为起始位置,逐个字符往前搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将首个非待提取字段中第一个搜寻到的特殊字符之前的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;第四生成控制单元,用于在第一判断子单元判断结果为待提取字段前后字符不均为特殊字符时,统计首个非待提取字段中第一个搜寻到的特殊字符与后面相邻位置的首个待提取字段之间的非特殊字符的字符数量n,生成对应的正则表达式为\w{n};第五生成控制单元,用于在第一判断子单元判断结果为待提取字段前后字符不均为特殊字符时,针对两个待提取字段之间的非待提取字段,从该非待提取字段第一个字符作为起始位置,逐个字符往后搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将该非待提取字段中第一个搜寻到的特殊字符之后的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;第六生成控制单元,用于在第一判断子单元判断结果为待提取字段前后字符不均为特殊字符时,统计两个待提取字段之间的非待提取字段中第一个搜寻到的特殊字符与前面相邻位置的待提取字段之间的非特殊字符的字符数量m,生成对应的正则表达式为\w{m}。
进一步地,在待提取字段前后字符相邻时,装置包括:第三判断子单元,用于在第二判断子单元判定待提取字段前后字符相邻时,判断相邻的两个待提取字段连接处是否为非特殊字符;第七生成控制单元,用于在第三判断子单元判定结果为是时,控制相邻的两个待提取字段中位置处于后面的待提取字段采用精确匹配方式生成正则表达式;相邻的两个待提取字段中位置处于前面的待提取字段采用遍历字符串将字符与表达式一一对应的方式生成正则表达式,非待提取字段通过通配过滤方式获得其正则表达式;第八生成控制单元,用于在第三判断子单元判定结果为否时,控制待提取字段采用遍历字符串将字符与表达式一一对应的方式生成正则表达式,非待提取字段通过通配过滤方式获得其正则表达式。
根据本发明实施例的一个方面,为实现上述目的,本发明提供了一种基于正则表达式的数据提取装置。
该基于正则表达式的数据提取装置包括:获取模块,用于获取所需数据提取的原始数据;第三生成模块,用于分析原始数据,生成对应的正则表达式;数据提取模块,用于根据生成的正则表达式对所需数据提取的原始数据进行数据提取;其中,第三生成模块通过上述的正则表达式的生成正则表达式。
根据本发明实施例的一个方面,为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
根据本发明实施例的一个方面,为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的正则表达式的生成方法、基于正则表达式的数据提取方法、装置、计算机设备和存储介质,在实现时,当用户提供了一段原始数据并确定目标待提取字段后,通过对原始数据的分析和待提取字段的划取,自动生成正则表达式,不需要使用者熟悉正则表达式相关规则即可获得所需的正则表达式,减少了正则表达式的书写难度;同时,在获得正则表达式后,以该正则表达式为基础对相同类型的日志文件进行提取,可大大提升数据提取效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的正则表达式的生成方法的一种可选的流程图;
图2为本发明实施例一提供的正则表达式的生成方法中原始数据的样本的示意图;
图3为本发明实施例二提供的基于正则表达式的数据提取方法的一种可选的流程图;
图4为本发明实施例三提供的正则表达式的生成装置的一种可选的结构框图;
图5为本发明实施例四提供的基于正则表达式的数据提取装置的一种可选的结构框图;
图6为本发明实施例五提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的数据提取技术,利用正则表达式提取是最常用的方式,其中的正则表达式需要编写人员自己根据数据样例,但正则表达式语义晦涩,需要非常专业的技巧,编写完毕后,还要用新的数据验证正则表达式。一个擅长正则表达式的熟练工,做完这个流程,至少需要30分钟,造成利用正则表达式从原始数据中提取数据工作效率低下;本发明的实施例通过对原始数据的分析和待提取字段的划取,自动生成正则表达式,达到数据提取所见即所得的效果,减少了正则表达式的书写难度,提升了数据提取效率。经过验证,本发明对于90%以上的日志,可以自动生成正则表达式,对于一般复杂度的日志,不需要使用者熟悉正则表达式,通过对原始日志待提取字段的内容做划词,自动生成正则表达式,并且自动用新的日志对生成的正则表达式做校验,做完这个流程,只需要几分钟。
关于本发明提供的正则表达式的生成方法、基于正则表达式的数据提取方法、装置、计算机设备和存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种正则表达式的生成方法,该检测方法可应用于应用在数据处理领域,例如数据提取、数据匹配过滤等,通过该方法,可减少了正则表达式的书写难度,同时,在获得正则表达式后,以该正则表达式为基础对相同类型的日志文件进行提取,可大大提升数据提取效率。具体地,图1为本发明实施例一提供的正则表达式的生成方法的流程图,如图1所示,该实施例提供的正则表达式的生成方法包括如下的步骤S101至步骤S103。
步骤S101:确定原始数据字符串中待提取字段和非待提取字段;
在实现时,用户可先将一条所需生成正则表达式的原始数据作为范例提供,然后选择需要提取的目标内容,该目标内容对应待提取字段,其中,用户可以选择需要提取的多个目标内容,相应地,本发明可以生成提取多个目标内容的正则表达式。在确定待提取字段后,待提取字段将提供的原始数据切分成多个部分,各个部分对应本发明的非待提取字段,也即,本发明的非待提取字段也可能为多个。举例来说,可参考图2,在图2原始数据的样例中,选中的目标内容分别是:“770”、“info”、“eth1”,因此,“770”、“info”、“eth1”作为三个待提取字段,这三个待提取字段将原始数据样例划分为1至7个字段,包含三个待提取字段(图中2、4、6字段)和4个非待提取字段(图中1、3、5、7字段)。
步骤S102:针对非待提取字段,进行通配过滤获得其正则表达式,针对待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达式;
在本实施例中,提供包括切分式和遍历式两种生成正则表达式的基础策略,具体说明如下:
切分式:以特殊字符T(比如空格、‘$’、‘\’等)作为分隔符号将字符串中的字符分成[^T]和T这两类,生成的表达式形如“[^\s]+\s”(\s表示空格、制表符等)。
遍历式:遍历字符串将字符与对应的表达式一一对应,比如数字字符‘0~9’对应表达式‘\d’,单词字符对应‘\w’,特殊字符则前面加上转义字符‘\’或‘\\’便是对应的表达式,最终生成的表达式形如“\d\s\w\.\d\d\d”。
此处需要说明的是,正则表达式是对字符串操作的一种逻辑公式,在本领域下,将字符串可划分为普通字符(例如,a到z之间的字母)和特殊字符,特殊字符又称为元字符,是本领域技术人员公知且清楚的基本概念。
具体来说,以下面的日志样例对上述的切分式和遍历式来说明,以便更好的理解本发明的实施例。
May 30 14:20:58 localhost dockerd:time="2018-05-30T14:20: 58.069595211+08:00"
此处需要说明的是,为了便于区分,申请人将上述样例中的待提取字段下方标记下划线,该下划线的作用仅仅是为了帮助阅读者区分待提取字段和非待提取字段,该日志原始数据本身并未带有下划线。
本发明实施例中的切分式作用之一是对待提取字段的定位,多用于生成非提取字段的表达式,如上述样例中,需要提取样例中的时间字段(下划线字段),用本发明的切分式的方法生成非提取字段的表达式如下:
^(?:[^\"]*\"),该方法生成的表达式简洁而且匹配效率较高,匹配时字符只需要跟特殊字符\"比较。
遍历式多用于生成待提取字段的表达式,如上述样例,用遍历式方法生成待提取字段的表达式:
(?<Time>\d+\-\d+\-\w\:\d+\:\d+\.\d+\+\d+\:\d+),该方法生成的表达式较精确但也比较冗长,适合生成待提取字段的表达式。故使用切分式和遍历式最后生成的完整表达式如下:
^(?:[^\"]*\")(?<Time>\d+\-\d+\-\w\:\d+\:\d+\.\d+\+\d+\:\d+)
步骤S103:将待提取字段的正则表达式和非待提取字段的正则表达式,按照待提取字段和非待提取字段在原始数据字符串中的排列顺序进行合并,以获得原始数据的正则表达式。
由于将原始数据分隔成了多个字段,分别将每个字段按照对应的方法生成对应的表达式后,需要按照其在原始数据中的排列顺序进行组装合并,最终获得这个原始数据样本的正则表达式。参考上面的示例,遍历式生成待提取字段的表达式(?<Time>\d+\-\d+\-\w\:\d+\:\d+\.\d+\+\d+\:\d+)排列在后,切分式生成非待提取字段的表达式^(?:[^\"]*\")排列在前,最终该样本数据对应的完整正则表达式为:^(?:[^\"]*\")(?<Time>\d+\-\d+\-\w\:\d+\:\d+\.\d+\+\d+\:\d+)。
下面以待提取字段为多个的情况生成正则表达式的方法进行说明,以便更好理解本发明的实施例:
以图2提供的数据作为原始数据的样本,在图2原始数据的样例中,“770”、“info”、“eth1”作为三个待提取字段,将待提取字段命名为type,“770”、“info”、“eth1”命名为:type1、type2、type3,采用上述切分式和遍历式两种方式,先指定待提取字段的前一个字符为特殊字符对非提取字段进行分隔,待提取字段则用遍历的方式生成,具体的自动生成正则表达式步骤为:
1.先对整个字符串分隔成1、2、3、4、5、6、7七个字段分别生成正则表达式。
2.先对字段1生成正则表达式,由于待提取字段2的前面一个字符为‘[’,所以运用该字符作为特殊字符对字段1做分隔,得到1的表达式为以非左中括号字符开头的并以左中括号结束的表达式:([^\[]*\[),表达式的个数为1个:([^\[]*\[){1}(后面{1}可省略)。
3.由于字段2是需要提取的字段,所有采用遍历方法直接查看包含哪些字符,得到表达式为:\d+。
4.对于字段3的生成,优选地,先判断3的开头字符是否等于后续待提取字段的分割字符,如果相等则添加一段该字符的表达式,由于没有,所以与字段1同样的方法生成表达式:([^\<]+\<)。
5.字段4的生成方法与字段2相同,为:\w+。
6.同样针对字段5,参考字段1的方法,生成:([^\(]+\()。
7.字段6生成正则表达式:\w+。
8.优选地,由于字段7不是待提取字段且在末尾,同时与字段6用特殊字符分割开,所以可以不用生成正则表达式。
9.最后得到的表达式为:
^(?:[^\[]*\[)(?<type1>\d+)(?:[^\<]+\<)(?<type2>\w+)(?:[^\(]+\()(?<type3>\w+)
本发明提供的上述实施方式,通过对原始数据的分析和待提取字段的划取,自动生成正则表达式,不需要使用者熟悉正则表达式相关规则即可获得所需的正则表达式,减少了正则表达式的书写难度;同时,在获得正则表达式后,以该正则表达式为基础对相同类型的日志文件进行提取,可大大提升数据提取效率。
考虑到原始数据会存在不规则的情况,为了提高本申请生成正则表达式是通用性和兼容性,在本实施例中还对上述方案进行了优化,具体来说,在进行正则表达式的生成前,增加判断步骤,判断提供的原始数据样例是否为不规则的特殊情况,若不为特殊情况,则按照上述处理方式进行,若存在特殊情况,则调用与该特殊情况对应的生成逻辑生成。具体说明如下:
首先,提供判断原始数据字符串是否属于特殊样例的判断逻辑,包括:
判断待提取字段前后字符是否均为特殊字符,若判断结果为否,判定属于特殊样例;和/或,判断待提取字段前后字符是否相邻,若判断结果为否,判定属于特殊样例。通过上述判断逻辑,可以直接确定是否为特殊样例,若存在特殊情况,则调用与该特殊情况对应的生成逻辑生成,提高生成正则表达式的兼容性。
针对不同的特殊情况,对应不同的处理逻辑,具体地,在本发明提供的一个处理场景中,在待提取字段前后字符不均为特殊字符时,处理逻辑包括:
以首个非待提取字段最后一个字符作为起始位置,逐个字符往前搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将首个非待提取字段中第一个搜寻到的特殊字符之前的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;统计首个非待提取字段中第一个搜寻到的特殊字符与后面相邻位置的首个待提取字段之间的非特殊字符的字符数量n,生成对应的正则表达式为\w{n};针对两个待提取字段之间的非待提取字段,从该非待提取字段第一个字符作为起始位置,逐个字符往后搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将该非待提取字段中第一个搜寻到的特殊字符之后的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;统计两个待提取字段之间的非待提取字段中第一个搜寻到的特殊字符与前面相邻位置的待提取字段之间的非特殊字符的字符数量m,生成对应的正则表达式为\w{m}。
下面结合具体示例来说明,以便更好的理解本方案:
日志样例:oplog result='1'session_id=e9b2a9f18ffaa150e167d41922e59756card="G1/1"
此处需要说明的是,为了便于区分,申请人将上述样例中的待提取字段下方标记下划线,该下划线的作用仅仅是为了帮助阅读者区分待提取字段和非待提取字段,该日志原始数据本身并未带有下划线。
上述共两个待提取字段167d41922e和G1/1(命名为type1、type2),其中type1前后都不是特殊字符,并且如果待提取字段在其他样例中长度不定,此时用上述切分和遍历的方式都很难提取出有效的表达式,所以算法中需要对该特殊情况加以考虑,本模块采用的方法是:
首先,从type1待提取字段的前一个字符开始往前搜索,当遇到特殊字符时,比如上述样例向前搜索到‘=’是最先遇到的特殊字符,则将特殊字符(包括该字符)前面的非提取字段按照切分的方法生成正则表达式如下:
^(?:[^\=]*\=){2}
而剩下的非提取字段部分“e9b2a9f18ffaa150e”则在搜索时统计出有17个非特殊字符,生成相应的表达式如下:
\w{17}
而type1用遍历方法生成的表达式如下:
(?<type1>\w+)
然后,type1和type2中间非提取字段中与type1相邻的非特殊字符也可参考上述方法,先从前往后搜索当遇到特殊字符(本例是空格字符)时停止,并统计出有6个非特殊字符,剩下的非提取字段部分则按切分法,最终该部分的正则表达式如下:
\w{6}(?:[^\"]*\")
而type2生成的表达式如下:
(?<type2>\w+\/\w)
最终生成的完整表达式为:
^(?:[^\=]*\=){2}\w{17}(?<type1>\w+)\w{6}(?:[^\"]*\")(?<type2>\w+\/\w)
上述针对非提取字段中,与待提取字段相邻的非特殊字符主要在切分法中处理,该情况参照上述不为特殊情况下对应生成正则表达式的方法。
本特殊情况的处理方法用于待提取字段前后的非特殊字符个数固定的情况效果最佳,具体适用场景比如提取身份证号中出生日期等字段。
针对不同的特殊情况,对应不同的处理逻辑,具体地,在本发明提供的另一个处理场景中,在待提取字段前后字符相邻时,处理逻辑包括:
判断相邻的两个待提取字段连接处是否为非特殊字符;若是,则相邻的两个待提取字段中位置处于后面的待提取字段采用精确匹配方式生成正则表达式;相邻的两个待提取字段中位置处于前面的待提取字段采用遍历字符串将字符与表达式一一对应的方式生成正则表达式,非待提取字段通过通配过滤方式获得其正则表达式;若不是,则待提取字段采用遍历字符串将字符与表达式一一对应的方式生成正则表达式,非待提取字段通过通配过滤方式获得其正则表达式。
下面结合具体示例来说明,以便更好的理解本方案:
日志样例:Leaving:false netPeers:1 entries:2 Queue qLen:0 net
此处需要说明的是,为了便于区分,申请人将上述样例中的待提取字段下方标记下划线,由于两个待提取字段连接,以下划线样式进行区分,单行下划线net为一个待提取字段,双线下划线为另外一个待提取字段。该下划线的作用是为了帮助阅读者对不同的待提取字段区分以及对待提取字段、非待提取字段之间的彼此区分,该日志原始数据本身并未带有下划线。
上述两个待提取字段(命名为type1、type2)相邻,并且连接处是非特殊字符,如果按照上述遍历方法加优化的方式生成的两个字段表达式如下:
(?<type1>\w+)(?<type2>\w+\/\w+)
若用上述表达式去匹配样例,得到两个字段的结果是:
type1:netMs
type2:g/s80r
显然结果与预期不一致,原因是两字段连接处是非特殊字符,使用“\w+”无法有效地界定字段边界。
本实施例提供的优选处理方式为:当两个字段相邻时,先判断连接处的字符是否都是非特殊字符,如果是,则后一个字段在遍历生成时采用精确匹配的方式生成正则表达式,如果不是,则继续后一个字段继续按优化后的遍历方法生成正则表达式,上述样例中两个字段按此方法生成的正则表达式如下:
(?<type1>\w+)(?<type2>\w{3}\/\w{4})
需要说明的是,正则表达式是对字符串操作的一种逻辑公式,在本领域下,正则表达式存在精确匹配方式和模糊匹配方式,精确匹配方式是本领域技术人员公知且清楚的基本概念。
本特殊情况的处理方法用于两个相邻字段长度固定的情况效果最佳,一般应用于一些具有固定格式的样例,比如提取身份证号中地区字段和出生日期字段,这两个字段相邻且连接处是非特殊字符数字,但是由于两个字段长度固定,所以采用此方法也可以有效提取。
针对不同的特殊情况,对应不同的处理逻辑,具体地,在本发明的一个可选的实施方式中,还提供的另一个对于特殊情况的判断及处理方式,举例来说:
日志样例:Leaving:false netPeers:1entries:2Queue qLen:0 netMsg/
此处需要说明的是,为了便于区分,申请人将上述样例中的待提取字段下方标记下划线,由于两个待提取字段连接,以下划线样式进行区分,单行下划线netMsg/为一个待提取字段,双线下划线为另外一个待提取字段。该下划线的作用是为了帮助阅读者对不同的待提取字段区分以及对待提取字段、非待提取字段之间的彼此区分,该日志原始数据本身并未带有下划线。
上述两个待提取字段分别为type1、type2,此时两个字段相邻。
本实施例提供的优选处理方式为:若有多个字段,会比较后一个字段的起始位置是否与前一个字段结束位置重合,如果不重合则继续按上述介绍的切分的方法、遍历的方法,如果重合,则直接调用遍历的方法生成后一个字段的表达式,此例采用该方法生成的表达式如下:
^(?:[^\s]*\s){5}(?<type1>\w+\/)(?<type2>\w+)
本实施例中提供的正则表达式的生成方法在实现时,当用户提供了一段原始数据并确定目标待提取字段后,通过对原始数据的分析和待提取字段的划取,自动生成正则表达式,不需要使用者熟悉正则表达式相关规则即可获得所需的正则表达式,减少了正则表达式的书写难度;同时,在获得正则表达式后,以该正则表达式为基础对相同类型的日志文件进行提取,可大大提升数据提取效率。
实施例二
基于上述实施例一,本发明实施例二提供了一种基于正则表达式的数据提取方法,参见图3,该基于正则表达式的数据提取方法包括如下步骤S301-S303:
S301,获取所需数据提取的原始数据;
S302,分析原始数据,生成对应的正则表达式;
S303,根据生成的正则表达式对所需数据提取的原始数据进行数据提取;
其中,通过实施例一中正则表达式的生成方法生成步骤S302中对应的正则表达式。
具体实现时,可以提供一个操作界面,用户可以在该操作界面第一指定位置下输入所需生成正则表达式的样例作为原始数据,当后台服务器接收到操作界面用户发出的生成正则表达式之后,按照实施例一中的正则表达式生成方法对应的处理逻辑,直接生成与该用户输入的原始数据样例对应的正则表达式,并在该操作界面的第二指定位置下显示。优选地,用户也可以发出隐藏正则表达式的指令,当后台服务器接收到操作界面用户发出的隐藏正则表达式的指令之后,在操作界面将生成的正则表达式隐藏。以便用户更加自身需求控制是否显示正则表达式,提高操作灵活性。
关于正则表达式生成的部分,相关技术特征和对应的技术效果可参考上述实施例一,在此处不再赘述。
实施例三
对应于上述实施例一,本发明实施例三提供了一种正则表达式的生成装置,相关技术特征和对应的技术效果可参考上述实施例一,在此处不再赘述。图4为本发明实施例三提供的正则表达式的生成装置的结构框图,如图4所示,该正则表达式的生成装置的包括:确定模块401,用于确定原始数据字符串中待提取字段和非待提取字段;第一生成控制模块402,针对非待提取字段,进行通配过滤获得其正则表达式,针对待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达式;第二生成控制模块403,用于将待提取字段的正则表达式和非待提取字段的正则表达式,按照待提取字段和非待提取字段在原始数据字符串中的排列顺序进行合并,以获得原始数据的正则表达式。
进一步地,第一生成控制模块包括:判断单元,用于根据确定的待提取字段判断原始数据字符串是否属于特殊样例;第一生成控制单元,用于在判断单元判定结果为原始数据字符串不属于特殊样例时,针对每个非待提取字段,获取该非待提取字段后面相邻位置的待提取字段的前面一个字符,作为对该非待提取字段的分隔字符T进行通配过滤获得包含[^T]和T形式的正则表达式;第二生成控制单元,用于在判断单元判定结果为原始数据字符串不属于特殊样例时,针对每个待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达,其中,数字0至9对应表达式\d,单词字符对应\w,特殊字符在前面位置加上转义字符\或\\。
进一步地,判断单元包括:第一判断子单元,用于判断待提取字段前后字符是否均为特殊字符,若否,判定属于特殊样例;和/或,第二判断子单元,用于判断待提取字段前后字符是否相邻,若否,判定属于特殊样例。
进一步地,在待提取字段前后字符不均为特殊字符时,装置包括:第三生成控制单元,用于在第一判断子单元判断结果为待提取字段前后字符不均为特殊字符时,以首个非待提取字段最后一个字符作为起始位置,逐个字符往前搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将首个非待提取字段中第一个搜寻到的特殊字符之前的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;第四生成控制单元,用于在第一判断子单元判断结果为待提取字段前后字符不均为特殊字符时,统计首个非待提取字段中第一个搜寻到的特殊字符与后面相邻位置的首个待提取字段之间的非特殊字符的字符数量n,生成对应的正则表达式为\w{n};第五生成控制单元,用于在第一判断子单元判断结果为待提取字段前后字符不均为特殊字符时,针对两个待提取字段之间的非待提取字段,从该非待提取字段第一个字符作为起始位置,逐个字符往后搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将该非待提取字段中第一个搜寻到的特殊字符之后的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;第六生成控制单元,用于在第一判断子单元判断结果为待提取字段前后字符不均为特殊字符时,统计两个待提取字段之间的非待提取字段中第一个搜寻到的特殊字符与前面相邻位置的待提取字段之间的非特殊字符的字符数量m,生成对应的正则表达式为\w{m}。
进一步地,在待提取字段前后字符相邻时,装置包括:第三判断子单元,用于在第二判断子单元判定待提取字段前后字符相邻时,判断相邻的两个待提取字段连接处是否为非特殊字符;第七生成控制单元,用于在第三判断子单元判定结果为是时,控制相邻的两个待提取字段中位置处于后面的待提取字段采用精确匹配方式生成正则表达式;相邻的两个待提取字段中位置处于前面的待提取字段采用遍历字符串将字符与表达式一一对应的方式生成正则表达式,非待提取字段通过通配过滤方式获得其正则表达式;第八生成控制单元,用于在第三判断子单元判定结果为否时,控制待提取字段采用遍历字符串将字符与表达式一一对应的方式生成正则表达式,非待提取字段通过通配过滤方式获得其正则表达式。
本实施例中提供的正则表达式的生成装置在实现时,当用户提供了一段原始数据并确定目标待提取字段后,通过对原始数据的分析和待提取字段的划取,自动生成正则表达式,不需要使用者熟悉正则表达式相关规则即可获得所需的正则表达式,减少了正则表达式的书写难度;同时,在获得正则表达式后,以该正则表达式为基础对相同类型的日志文件进行提取,可大大提升数据提取效率。
实施例四
对应于上述实施例二,本发明实施例四提供了一种基于正则表达式的数据提取装置,相关技术特征和对应的技术效果可参考上述实施例二和实施例一,在此处不再赘述。图5为本发明实施例四提供的基于正则表达式的数据提取装置的结构框图,如图5所示,该正则表达式的生成装置的包括:获取模块502,用于获取所需数据提取的原始数据;第三生成模块504,用于分析原始数据,生成对应的正则表达式;数据提取模块506,用于根据生成的正则表达式对所需数据提取的原始数据进行数据提取;其中,第三生成模块通过实施例一中提供的正则表达式的生成方法实现。
实施例五
本实施例三还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图6所示。需要指出的是,图6仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例三的正则表达式的生成装置的程序代码、实施例四的基于正则表达式的数据提取装置等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如正则表达式的生成方法等。
实施例六
本实施例六还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于正则表达式的生成装置,被处理器执行时实现实施例一的正则表达式的生成方法。
在另一个实施方式中,本实施例的计算机可读存储介质用于基于正则表达式的数据提取装置,被处理器执行时实现实施例二的基于正则表达式的数据提取方法。
从以上描述中可以看出,本发明上述实施例提供的正则表达式的生成方法、基于正则表达式的数据提取方法、装置、计算机设备和存储介质,在实现时,当用户提供了一段原始数据并确定目标待提取字段后,通过对原始数据的分析和待提取字段的划取,自动生成正则表达式,不需要使用者熟悉正则表达式相关规则即可获得所需的正则表达式,减少了正则表达式的书写难度;同时,在获得正则表达式后,以该正则表达式为基础对相同类型的日志文件进行提取,可大大提升数据提取效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种正则表达式的生成方法,其特征在于,包括:
确定原始数据字符串中待提取字段和非待提取字段;
针对所述非待提取字段,进行通配过滤获得其正则表达式,针对所述待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达式;
将所述待提取字段的正则表达式和所述非待提取字段的正则表达式,按照所述待提取字段和所述非待提取字段在所述原始数据字符串中的排列顺序进行合并,以获得所述原始数据的正则表达式,
其中,所述针对所述非待提取字段,进行通配过滤获得其正则表达式,针对所述待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达式,包括:
根据确定的所述待提取字段判断所述原始数据字符串是否属于特殊样例;
若判定所述原始数据字符串不属于特殊样例,针对每个非待提取字段,获取该非待提取字段后面相邻位置的待提取字段的前面一个字符,作为对该非待提取字段的分隔字符T进行通配过滤获得包含[^T]和T形式的正则表达式;
针对每个待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达,其中,数字0至9对应表达式\d,单词字符对应\w,特殊字符在前面位置加上转义字符\或\\。
2.根据权利要求1所述的正则表达式的生成方法,其特征在于,所述根据确定的所述待提取字段判断所述原始数据字符串是否属于特殊样例,包括:
判断所述待提取字段前后字符是否均为特殊字符,若判断结果为否,判定属于特殊样例;和/或,
判断所述待提取字段前后字符是否相邻,若判断结果为否,判定属于特殊样例。
3.根据权利要求2所述的正则表达式的生成方法,其特征在于,在所述待提取字段前后字符不均为特殊字符时,所述方法包括:
以首个非待提取字段最后一个字符作为起始位置,逐个字符往前搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将所述首个非待提取字段中所述第一个搜寻到的特殊字符之前的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;
统计所述首个非待提取字段中第一个搜寻到的特殊字符与后面相邻位置的首个待提取字段之间的非特殊字符的字符数量n,生成对应的正则表达式为\w{n};
针对两个待提取字段之间的非待提取字段,从该非待提取字段第一个字符作为起始位置,逐个字符往后搜寻,将第一个搜寻到的特殊字符作为分隔字符T,将该非待提取字段中所述第一个搜寻到的特殊字符之后的剩余字段进行通配过滤获得包含[^T]和T形式的正则表达式;
统计所述两个待提取字段之间的非待提取字段中第一个搜寻到的特殊字符与前面相邻位置的待提取字段之间的非特殊字符的字符数量m,生成对应的正则表达式为\w{m}。
4.根据权利要求2所述的正则表达式的生成方法,其特征在于,在所述待提取字段前后字符相邻时,所述方法包括:
判断相邻的两个待提取字段连接处是否为非特殊字符;
若是,则相邻的两个待提取字段中位置处于后面的待提取字段采用精确匹配方式生成正则表达式;相邻的两个待提取字段中位置处于前面的待提取字段采用所述遍历字符串将字符与表达式一一对应的方式生成正则表达式,所述非待提取字段通过通配过滤方式获得其正则表达式;
若不是,则待提取字段采用所述遍历字符串将字符与表达式一一对应的方式生成正则表达式,所述非待提取字段通过通配过滤方式获得其正则表达式。
5.一种基于正则表达式的数据提取方法,其特征在于,包括:
获取所需数据提取的原始数据;
分析所述原始数据,生成对应的正则表达式;
根据生成的所述正则表达式对所需数据提取的原始数据进行数据提取;
其中,通过权利要求1-4任一项所述的正则表达式的生成方法生成所述对应的正则表达式。
6.一种正则表达式的生成装置,其特征在于,包括:
确定模块,用于确定原始数据字符串中待提取字段和非待提取字段;
第一生成控制模块,针对所述非待提取字段,进行通配过滤获得其正则表达式,针对所述待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达式;
第二生成控制模块,用于将所述待提取字段的正则表达式和所述非待提取字段的正则表达式,按照所述待提取字段和所述非待提取字段在所述原始数据字符串中的排列顺序进行合并,以获得所述原始数据的正则表达式,
其中,所述第一生成控制模块包括:判断单元,用于根据确定的所述待提取字段判断所述原始数据字符串是否属于特殊样例;第一生成控制单元,用于在所述判断单元判定结果为所述原始数据字符串不属于特殊样例时,针对每个非待提取字段,获取该非待提取字段后面相邻位置的待提取字段的前面一个字符,作为对该非待提取字段的分隔字符T进行通配过滤获得包含[^T]和T形式的正则表达式;第二生成控制单元,用于在所述判断单元判定结果为所述原始数据字符串不属于特殊样例时,针对每个待提取字段,遍历字符串将字符与表达式一一对应获得其正则表达,其中,数字0至9对应表达式\d,单词字符对应\w,特殊字符在前面位置加上转义字符\或\\。
7.一种基于正则表达式的数据提取装置,其特征在于,包括:
获取模块,用于获取所需数据提取的原始数据;
第三生成模块,用于分析所述原始数据,生成对应的正则表达式;
数据提取模块,用于根据生成的所述正则表达式对所需数据提取的原始数据进行数据提取;
其中,第三生成模块通过权利要求1-4任一项所述的正则表达式的生成正则表达式。
8.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911417417.7A CN111159497B (zh) | 2019-12-31 | 2019-12-31 | 正则表达式的生成方法及基于正则表达式的数据提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911417417.7A CN111159497B (zh) | 2019-12-31 | 2019-12-31 | 正则表达式的生成方法及基于正则表达式的数据提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111159497A CN111159497A (zh) | 2020-05-15 |
CN111159497B true CN111159497B (zh) | 2023-09-22 |
Family
ID=70560485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911417417.7A Active CN111159497B (zh) | 2019-12-31 | 2019-12-31 | 正则表达式的生成方法及基于正则表达式的数据提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159497B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949836A (zh) * | 2020-07-31 | 2020-11-17 | 上海中通吉网络技术有限公司 | 正则表达式的应用方法及系统 |
CN113268246B (zh) * | 2021-05-28 | 2022-05-13 | 大箴(杭州)科技有限公司 | 正则表达式的生成方法、装置及计算机设备 |
CN113343715B (zh) * | 2021-06-29 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 自动生成正则表达式的方法、装置、设备及存储介质 |
CN115438198B (zh) * | 2022-11-07 | 2023-03-31 | 四川大学 | 一种基于知识库的可解释性医疗数据结构化方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2820500A1 (en) * | 2005-12-02 | 2007-06-07 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
CN103186640A (zh) * | 2011-12-31 | 2013-07-03 | 百度在线网络技术(北京)有限公司 | 采用基于ac算法的正则匹配的流量过滤方法及装置 |
CN105868166A (zh) * | 2015-01-22 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 一种正则表达式的生成方法及系统 |
WO2017075392A1 (en) * | 2015-10-30 | 2017-05-04 | Acxiom Corporation | Automated interpretation for the layout of structured multi-field files |
US9967272B1 (en) * | 2017-12-05 | 2018-05-08 | Redberry Systems, Inc. | Real-time regular expression search engine |
CN108268592A (zh) * | 2017-12-08 | 2018-07-10 | 中国平安财产保险股份有限公司 | 基于json数据的筛选方法、装置、服务器和存储介质 |
CN110222143A (zh) * | 2019-05-31 | 2019-09-10 | 北京小米移动软件有限公司 | 字符串匹配方法,装置,存储介质及电子设备 |
-
2019
- 2019-12-31 CN CN201911417417.7A patent/CN111159497B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2820500A1 (en) * | 2005-12-02 | 2007-06-07 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
CN103186640A (zh) * | 2011-12-31 | 2013-07-03 | 百度在线网络技术(北京)有限公司 | 采用基于ac算法的正则匹配的流量过滤方法及装置 |
CN105868166A (zh) * | 2015-01-22 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 一种正则表达式的生成方法及系统 |
WO2017075392A1 (en) * | 2015-10-30 | 2017-05-04 | Acxiom Corporation | Automated interpretation for the layout of structured multi-field files |
US9967272B1 (en) * | 2017-12-05 | 2018-05-08 | Redberry Systems, Inc. | Real-time regular expression search engine |
CN108268592A (zh) * | 2017-12-08 | 2018-07-10 | 中国平安财产保险股份有限公司 | 基于json数据的筛选方法、装置、服务器和存储介质 |
CN110222143A (zh) * | 2019-05-31 | 2019-09-10 | 北京小米移动软件有限公司 | 字符串匹配方法,装置,存储介质及电子设备 |
Non-Patent Citations (3)
Title |
---|
付哲 ; 李军 ; .高性能正则表达式匹配算法综述.计算机工程与应用.2018,(20),全文. * |
张树壮 ; 罗浩 ; 方滨兴 ; .面向网络安全的正则表达式匹配技术.软件学报.2011,(08),全文. * |
王翔 ; 卢毓海 ; 马伟 ; 刘燕兵 ; .一种针对DFA状态爆炸的正则表达式匹配方法.计算机工程.2018,(04),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111159497A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159497B (zh) | 正则表达式的生成方法及基于正则表达式的数据提取方法 | |
CN107729526B (zh) | 一种文本结构化的方法 | |
CN106649783B (zh) | 一种同义词挖掘方法和装置 | |
CN109189888B (zh) | 电子装置、侵权分析的方法及存储介质 | |
US8577155B2 (en) | System and method for duplicate text recognition | |
US10558694B2 (en) | Search method and apparatus | |
CN110321470A (zh) | 文档处理方法、装置、计算机设备和存储介质 | |
CN104216992A (zh) | 一种信息处理方法及装置 | |
CN103455471A (zh) | 一种将文本解析成键值对的方法和装置 | |
CN109101491B (zh) | 一种作者信息抽取方法、装置、计算机装置及计算机可读存储介质 | |
CN107977359B (zh) | 一种影视剧本场景信息的提取方法 | |
CN111008625A (zh) | 一种地址校正方法、装置、设备及存储介质 | |
CN109871544B (zh) | 基于中文病历的实体识别方法、装置、设备及存储介质 | |
CN112765963B (zh) | 语句分词方法、装置、计算机设备及存储介质 | |
CN102298618A (zh) | 一种获取匹配度以执行相应操作的方法、装置及设备 | |
US20160253374A1 (en) | Data file writing method and system, and data file reading method and system | |
CN110287460B (zh) | 电子书的展示方法、计算设备及计算机存储介质 | |
US9639970B2 (en) | Character recognition system, character recognition program and character recognition method | |
CN106649367B (zh) | 检测关键词推广程度的方法和装置 | |
CN116306498A (zh) | 文字渲染方法及装置 | |
CN112541505B (zh) | 文本识别方法、装置以及计算机可读存储介质 | |
CN115103225A (zh) | 视频片段提取方法、装置、电子设备和存储介质 | |
CN114049686A (zh) | 签名识别模型训练方法、装置及电子设备 | |
CN113723082A (zh) | 从文本中检测中文拼音的方法和装置 | |
CN102982029A (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 | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: QAX Technology Group Inc. Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd. Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant before: QAX Technology Group Inc. Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |