低版本MYSQL正则替换方法及装置与流程

文档序号:33006207发布日期:2023-01-18 04:18阅读:64来源:国知局
低版本MYSQL正则替换方法及装置与流程
低版本mysql正则替换方法及装置
技术领域
1.本技术涉及数据库技术领域,特别涉及人工智能技术领域,尤其涉及一种低版本mysql正则替换方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.在实际工作中,根据项目开发所选择的数据库类型和数据库版本,针对高版本数据库提供的数据处理函数,在低版本的数据库中显然是没法使用执行的。例如正则替换函数regexp_replace(),在mysql8.0版本以下是没法使用的。


技术实现要素:

4.本技术的一个目的在于提供一种低版本mysql正则替换方法,通过低版本mysql替换高版本mysql正则替换函数字符串的字符,实现正则替换功能。本技术的另一个目的在于提供一种低版本mysql正则替换装置。本技术的再一个目的在于提供一种计算机设备。本技术的还一个目的在于提供一种可读介质。本技术的还一个目的在于提供一种计算机程序产品。
5.为了达到以上目的,本技术一方面公开了一种低版本mysql正则替换方法,应用于低版本mysql,包括:
6.对高版本mysql的正则替换函数待处理的字符串进行解析得到字符串属性;
7.基于所述字符串属性对所述字符串进行拆分得到最小数据单元;
8.对所述最小数据单元进行替换得到新字符,将所有新字符进行组合得到新字符串。
9.优选的,所述对高版本mysql的正则替换函数进行字符串解析得到字符串属性具体包括:
10.确定高版本mysql的正则替换函数中字符串的数据项长度和待替换的数据项,得到字符串属性。
11.优选的,所述基于所述字符串属性对所述字符串进行拆分得到最小数据单元具体包括:
12.对所述字符串属性中的待替换数据项进行拆分得到最小数据单元。
13.优选的,所述对所述字符串属性中的待替换数据项进行拆分得到最小数据单元具体包括:
14.通过mysql.help_topic表的help_topic_id对所述数据项进行拆分得到所有最小数据单元。
15.优选的,所述对所述最小数据单元进行替换得到新字符具体包括:
16.确定每个最小数据单元是否与预设字符集合匹配;
17.若是,将匹配的最小数据单元的字符替换为所述预设字符集合中的字符得到每个最小数据单元对应的新字符;
18.若否,将所述最小数据单元的字符作为新字符。
19.本技术还公开了一种低版本mysql正则替换装置,应用于低版本mysql,所述装置包括:
20.字符串解析模块,用于对高版本mysql的正则替换函数待处理的字符串进行解析得到字符串属性;
21.字符串拆分模块,用于基于所述字符串属性对所述字符串进行拆分得到最小数据单元;
22.字符串替换模块,用于对所述最小数据单元进行替换得到新字符,将所有新字符进行组合得到新字符串。
23.优选的,所述字符串解析模块具体用于确定高版本mysql的正则替换函数中字符串的数据项长度和待替换的数据项,得到字符串属性。
24.优选的,所述字符串拆分模块具体用于对所述字符串属性中的待替换数据项进行拆分得到最小数据单元。
25.优选的,所述字符串拆分模块具体用于通过mysql.help_topic表的help_topic_id对所述数据项进行拆分得到所有最小数据单元。
26.优选的,所述字符串替换模块具体用于确定每个最小数据单元是否与预设字符集合匹配;若是,将匹配的最小数据单元的字符替换为所述预设字符集合中的字符得到每个最小数据单元对应的新字符;若否,将所述最小数据单元的字符作为新字符。
27.本技术还公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
28.本技术还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
29.本技术还公开了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述方法。
30.本技术低版本mysql正则替换方法应用于低版本mysql,通过低版本mysql对高版本mysql的正则替换函数待处理的字符串进行解析得到字符串属性;基于所述字符串属性对所述字符串进行拆分得到最小数据单元;对所述最小数据单元进行替换得到新字符,将所有新字符进行组合得到新字符串。从而,本技术通过低版本mysql对高版本mysql的正则替换函数的字符串进行拆分并替换得到新字符串,实现正则替换功能。
附图说明
31.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
32.图1示出本技术低版本mysql正则替换方法具体实施例的流程图;
33.图2示出本技术低版本mysql正则替换方法具体实施例s100的流程图;
34.图3示出本技术低版本mysql正则替换方法具体实施例s200的流程图;
35.图4示出本技术低版本mysql正则替换方法具体实施例s210的流程图;
36.图5示出本技术低版本mysql正则替换方法具体实施例s300的流程图;
37.图6示出本技术低版本mysql正则替换装置具体实施例的结构图;
38.图7示出适于用来实现本技术实施例的计算机设备的结构示意图。
具体实施方式
39.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
40.本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
41.需要说明的是,本技术公开的一种低版本mysql正则替换方法及装置可用于人工智能技术领域,也可用于除人工智能技术领域之外的任意领域,本技术公开的一种低版本mysql正则替换方法及装置的应用领域不做限定。
42.为了便于理解本技术提供的技术方案,下面先对本技术技术方案的相关内容进行说明。本技术实施例提供的低版本mysql正则替换方法通过低版本mysql对高版本mysql的正则替换函数的字符串进行拆分并替换得到新字符串,实现正则替换功能。
43.下面以低版本mysql正则替换装置作为执行主体为例,说明本技术实施例提供的低版本mysql正则替换方法的实现过程。可以理解的是,本技术实施例提供的低版本mysql正则替换方法的执行主体包括但不限于该低版本mysql正则替换装置。
44.根据本技术的一个方面,本实施例公开了低版本mysql正则替换方法,应用于低版本mysql,该低版本mysql的版本低于高版本mysql,低版本mysql中不存在高版本mysql的正则替换函数,无法实现正则替换功能。如图1所示,本实施例中,所述方法包括:
45.s100:对高版本mysql的正则替换函数待处理的字符串进行解析得到字符串属性。
46.s200:基于所述字符串属性对所述字符串进行拆分得到最小数据单元。
47.s300:对所述最小数据单元进行替换得到新字符,将所有新字符进行组合得到新字符串。
48.本技术低版本mysql正则替换方法应用于低版本mysql,通过低版本mysql对高版本mysql的正则替换函数待处理的字符串进行解析得到字符串属性;基于所述字符串属性对所述字符串进行拆分得到最小数据单元;对所述最小数据单元进行替换得到新字符,将所有新字符进行组合得到新字符串。从而,本技术通过低版本mysql对高版本mysql的正则替换函数的字符串进行拆分并替换得到新字符串,实现正则替换功能。
49.在优选的实施方式中,如图2所示,所述s100对高版本mysql的正则替换函数进行字符串解析得到字符串属性具体包括:
50.s110:确定高版本mysql的正则替换函数中字符串的数据项长度和待替换的数据项,得到字符串属性。
51.具体的,可以理解的是,高版本mysql中正则替换函数(regexp_replace函数)可用
于模式匹配,即通过匹配字符来替换给定的字符串字符。具体的,此函数为mysql8.0版本新增的函数,低于8.0版本的mysql没有该正则替换函数。解析字符串的数据格式,是数据处理的开始环节。针对要替换的数据集合的字符串,需要分析其数据项长度以及需要比较替换的一个或多个数据项,以用于后续的数据拆分和替换。
52.在优选的实施方式中,如图3所示,所述s200基于所述字符串属性对所述字符串进行拆分得到最小数据单元具体包括:
53.s210:对所述字符串属性中的待替换数据项进行拆分得到最小数据单元。
54.具体的,可以理解的是,在通过对正则替换函数中的字符串进行解析得到字符串属性后,即得到字符串的组成形式,从而可对分析得到的字符串属性中的待替换数据项进行拆分得到最小数据单元,即可实现对字符串进行拆分得到需要替换的字符。
55.在优选的实施方式中,如图4所示,所述s210对所述字符串属性中的待替换数据项进行拆分得到最小数据单元具体包括:
56.s211:通过mysql.help_topic表的help_topic_id对所述数据项进行拆分得到所有最小数据单元。
57.在该优选的实施方式中,首先可通过分隔符号对高版本正则替换函数中的字符串进行拆分得到多个数据项,然后分别对每个数据项进行进一步的折分得到用于比较确定是否需要替换的最小数据单元,即不可再拆分的字符。
58.其中,对需要替换的字符串按照数据项之间的分隔符号进行拆分,通过借助mysql.help_topic表的help_topic_id对字符串按照字符进行拆分,形成最小数据单元[char]。
[0059]
低版本mysql中的实现脚本示例如下:
[0060][0061]
在优选的实施方式中,如图5所示,所述s300对所述最小数据单元进行替换得到新字符具体包括:
[0062]
s310:确定每个最小数据单元是否与预设字符集合匹配。
[0063]
s320:若是,将匹配的最小数据单元的字符替换为所述预设字符集合中的字符得到每个最小数据单元对应的新字符。
[0064]
s330:若否,将所述最小数据单元的字符作为新字符。
[0065]
具体的,可以理解的是,比较拆分后最小数据单元的字符与要比较替换字符串的关系,将符合替换格式或要求的字符替换掉。首先需要判断拆分形成的最小数据单元[char]是否与替换的字符集合匹配regexp;如果匹配,替换为空格”,否则保留原字符[char]。
[0066]
在具体例子中,实现脚本示例如下:
[0067]
if(([char]regexp
[0068]
'([^abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
[0069]
0123456789():”,+-./?])')=0,new_temp,”)。
[0070]
在可选的实施方式中,将所有新字符进行组合得到新字符串时,可通过group_concat()函数,将比较替换后的字符[char],用”组合拼接在一起得到新字符串。
[0071]
如将字符串c_instr:'汉字12a3'中的非azaz09():”,+-./?的字符替换为空格。则在本方法中,会先拆分为6个单字符[char]:'汉'、'字'、'1'、'2'、'a'、'3';再将'汉'、'字'替换为空格;最后将替换后的[char]:”、”、'1'、'2'、'a'、'3',用固定分隔符拼接成字符串'12a3'。具体如下:
[0072]
在具体例子中,实现脚本示例如下:
[0073]
group_concat([char]separator”)。
[0074]
在具体例子中,要实现替换字符串中非azaz09():”,+-./?的字符为空格的功能。在支持regexp_replace()函数的高版本mysql中,可以用如下方式快速实现:
[0075][0076]
在不支持regexp_replace()函数的低版本mysql中,可通过如下脚本实现:
[0077][0078]
本技术借助mysql.help_topic表的help_topic_id对字符串按照字符进行拆分,对拆分成的最小单元再执行替换处理。通过help_topic_id将字符串拆分成字符,再结合匹
配函数regexp判断是否匹配,最后将匹配处理后的结果聚合成新字符串。该新字符串与通过高版本mysql的正则替换函数对字符串进行替换得到的字符串一致,即实现了在低版本mysql中实现高版本mysql中正则替换函数的字符串替换功能,解决低版本数据库数据处理的效率低的问题,用标准sql脚本实现通用性,同时本技术也支持在不同数据库中实现。
[0079]
基于相同原理,本技术实施例中还公开了一种低版本mysql正则替换装置,应用于低版本mysql。如图6所示,本实施例中,所述装置包括字符串解析模块11、字符串拆分模块12和字符串替换模块13。
[0080]
其中,字符串解析模块11用于对高版本mysql的正则替换函数待处理的字符串进行解析得到字符串属性。
[0081]
字符串拆分模块12用于基于所述字符串属性对所述字符串进行拆分得到最小数据单元。
[0082]
字符串替换模块13用于对所述最小数据单元进行替换得到新字符,将所有新字符进行组合得到新字符串。
[0083]
在优选的实施方式中,所述字符串解析模块11具体用于确定高版本mysql的正则替换函数中字符串的数据项长度和待替换的数据项,得到字符串属性。
[0084]
在优选的实施方式中,所述字符串拆分模块12具体用于对所述字符串属性中的待替换数据项进行拆分得到最小数据单元。
[0085]
在优选的实施方式中,所述字符串拆分模块12具体用于通过mysql.help_topic表的help_topic_id对所述数据项进行拆分得到所有最小数据单元。
[0086]
在优选的实施方式中,所述字符串替换模块13具体用于确定每个最小数据单元是否与预设字符集合匹配;若是,将匹配的最小数据单元的字符替换为所述预设字符集合中的字符得到每个最小数据单元对应的新字符;若否,将所述最小数据单元的字符作为新字符。
[0087]
由于该装置解决问题的原理与以上方法类似,因此本装置的实施可以参见方法的实施,在此不再赘述。
[0088]
本技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述异常交易实时检测方法。
[0089]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述异常交易实时检测方法。
[0090]
本技术实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述异常交易实时检测方法。
[0091]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0092]
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执
行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
[0093]
下面参考图7,其示出了适于用来实现本技术实施例的计算机设备600的结构示意图。
[0094]
如图7所示,计算机设备600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的工作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602、以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
[0095]
以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶反馈器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
[0096]
特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
[0097]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0098]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0099]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0100]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0101]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0102]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0103]
本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0104]
本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0105]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0106]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1