[发明专利]正则表达式的生成方法及基于正则表达式的数据提取方法有效
申请号: | 201911417417.7 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111159497B | 公开(公告)日: | 2023-09-22 |
发明(设计)人: | 孙洪亮;张勇 | 申请(专利权)人: | 奇安信科技集团股份有限公司;奇安信网神信息技术(北京)股份有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903;G06F16/9032 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 程超 |
地址: | 100088 北京市西城区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 正则 表达式 生成 方法 基于 数据 提取 | ||
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任一项所述的正则表达式的生成方法生成所述对应的正则表达式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇安信科技集团股份有限公司;奇安信网神信息技术(北京)股份有限公司,未经奇安信科技集团股份有限公司;奇安信网神信息技术(北京)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911417417.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:金融市场产品的推送方法及装置
- 下一篇:银行软件功能界面生成方法和装置