[发明专利]一种数据库语句的字符提取方法、装置、设备及介质在审
申请号: | 202110920713.X | 申请日: | 2021-08-11 |
公开(公告)号: | CN113641695A | 公开(公告)日: | 2021-11-12 |
发明(设计)人: | 唐山;范渊;刘博 | 申请(专利权)人: | 杭州安恒信息技术股份有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王洋 |
地址: | 310000 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 语句 字符 提取 方法 装置 设备 介质 | ||
本申请公开了一种数据库语句的字符提取方法、装置、设备及介质,该方法包括:当要提取目标SQL语句中的目标字符串时,则根据目标字符串设置相应的正则表达式;若目标SQL语句中存在满足正则表达式的筛选字符串时,则分别在筛选字符串的起始位置和结束位置添加第一标识符和第二标识符,得到修改SQL语句;对修改SQL语句进行逐字符匹配;当匹配到修改SQL语句中的第一标识符和第二标识符时,则对第一标识符和第二标识符之间的字符串进行提取,得到目标字符串。显然,通过该方法就可以将目标SQL语句中的目标字符串转换为逐字符匹配规则可识别的字符串,这样就能够将目标SQL语句中无法识别的目标字符串提取出来,并由此达到从SQL语句中提取出特殊内容字符的目的。
技术领域
本发明涉及计算机技术领域,特别涉及一种数据库语句的字符提取方法、装置、设备及介质。
背景技术
SQL(Structured Query Language,结构化查询语言)语句是一种数据库的查询和程序设计语言。在现有技术中,如果想要对SQL语句中的目标字符串进行提取时,通常需要对SQL语句进行逐字符匹配。比如:如果解析的SQL语句为:select*from staff where id=2时,当检测到字符2时,就会利用相应的参数提取模板将字符2提取出来。但是,当需要提取SQL语句中的一些特殊内容字符时,因为特殊内容字符不是现有逐字符匹配规则可识别出的字符串,所以,就会出现无法从SQL语句中识别出这些特殊内容字符的问题。比如:如果解析的SQL语句为:select*from staff where id=张三,利用现有逐字符匹配规则就无法将“张三”这一特殊内容字符从SQL语句中提取出来。目前,针对这一技术问题,还没有较为有效的解决办法。
发明内容
有鉴于此,本发明的目的在于提供一种数据库语句的字符提取方法、装置、设备及介质,以从SQL语句中提取出特殊内容字符。其具体方案如下:
一种数据库语句的字符提取方法,包括:
当要提取目标SQL语句中的目标字符串时,则根据所述目标字符串设置相应的正则表达式,并利用所述正则表达式对所述目标SQL语句进行规则匹配;
若所述目标SQL语句中存在满足所述正则表达式的筛选字符串时,则分别在所述筛选字符串的起始位置和结束位置添加第一标识符和第二标识符,得到修改SQL语句;其中,所述第一标识符和所述第二标识符为区别于所述目标SQL语句中任意一个字符的标识;
对所述修改SQL语句进行逐字符匹配;
当匹配到所述修改SQL语句中的所述第一标识符和所述第二标识符时,则对所述第一标识符和所述第二标识符之间的字符串进行提取,得到所述目标字符串。
优选的,所述目标字符串包括特殊字符和/或SQL字符串和/或文字。
优选的,还包括:
对所述正则表达式进行存储。
优选的,所述第一标识符和所述第二标识符具体为用户自定义的标识符。
优选的,所述第一标识符和所述第二标识符具体为成对出现的标识符。
优选的,还包括:
若所述目标SQL语句中不存在满足所述正则表达式的筛选字符串时,则重新执行所述根据所述目标字符串设置相应的正则表达式,并利用所述正则表达式对所述目标SQL语句进行规则匹配的步骤,直至所述目标SQL语句中存在满足所述正则表达式的所述筛选字符串。
相应的,本发明还公开了一种数据库语句的字符提取装置,包括:
规则匹配模块,用于当要提取目标SQL语句中的目标字符串时,则根据所述目标字符串设置相应的正则表达式,并利用所述正则表达式对所述目标SQL语句进行规则匹配;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州安恒信息技术股份有限公司,未经杭州安恒信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110920713.X/2.html,转载请声明来源钻瓜专利网。