本公开涉及计算机,尤其涉及一种基于富文本数据的关键词替换方法及装置。
背景技术:
1、随着互联网技术的发展,为了满足分享者在平台编写博客,出现了富文本编辑器(multi-function text editor,mte),富文本编辑器提供类似于microsoft word的编辑功能,容易被不会编写html的用户或需要设置各种文本格式的用户所使用,因此,富文本编辑器也开始应用到软件系统开发场景中。
2、然而,由于软件系统开发场景中编辑出的富文本数据的文本长,若需对富文本数据中的某一关键词进行替换操作,使用常规的正则或高级语言提供的字符串查找函数进行关键词匹配的时间复杂度高,增加了系统响应时间,降低了用户体验。
3、因此,如何提高富文本数据的中的关键词替换效率,成为本领域技术人员急需解决的技术问题。
技术实现思路
1、鉴于上述问题,本公开提供一种克服上述问题或者至少部分地解决上述问题的一种基于富文本数据的关键词替换方法及装置,技术方案如下:
2、一种基于富文本数据的关键词替换方法,包括:
3、获得待替换关键词和目标关键词;
4、基于目标富文本数据,对所述待替换关键词构建相应的next数组;
5、基于kmp字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置;
6、利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词。
7、可选的,所述基于kmp字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置,包括:
8、遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分;
9、基于kmp字符串匹配算法,利用所述待替换关键词在所述非标签部分进行遍历搜索,并在所述遍历搜索过程中基于所述next数组进行回退控制;
10、在所述非标签部分搜索到所述待替换关键词的情况下,将所述待替换关键词在所述非标签部分的最后一个字符的位置确定为结束位置;
11、利用所述结束位置和所述待替换关键词的字符长度,在所述非标签部分确定所述待替换关键词的起始位置。
12、可选的,所述遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分,包括:
13、在所述目标富文本数据中遍历到第一个左括号字符之后,若先遍历到右括号字符,则将所述目标富文本数据中所述右括号字符之后的部分确定为非标签部分,若先遍历到第二个左括号字符,则将所述目标富文本数据中所述第一个左括号字符后的部分确定为非标签部分。
14、可选的,所述利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词,包括:
15、基于所述起始位置,在所述非标签部分截取左字符串文本和右字符串文本;
16、将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接;
17、将所述非标签部分中的所述待替换关键词替换为拼接后的所述目标关键词。
18、可选的,在将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接之前,所述方法还包括:
19、对所述目标关键词进行高亮标记。
20、一种基于富文本数据的关键词替换装置,包括:关键词获得单元、数组构建单元、起始位置确定单元和关键词替换单元,
21、所述关键词获得单元,用于获得待替换关键词和目标关键词;
22、所述数组构建单元,用于基于目标富文本数据,对所述待替换关键词构建相应的next数组;
23、所述起始位置确定单元,用于基于kmp字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置;
24、所述关键词替换单元,用于利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词。
25、可选的,所述起始位置确定单元包括:非标签部分确定子单元、搜索子单元、结束位置确定子单元和起始位置确定子单元,
26、所述非标签部分确定子单元,用于遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分;
27、所述搜索子单元,用于基于kmp字符串匹配算法,利用所述待替换关键词在所述非标签部分进行遍历搜索,并在所述遍历搜索过程中基于所述next数组进行回退控制;
28、所述结束位置确定子单元,用于在所述非标签部分搜索到所述待替换关键词的情况下,将所述待替换关键词在所述非标签部分的最后一个字符的位置确定为结束位置;
29、所述起始位置确定子单元,用于利用所述结束位置和所述待替换关键词的字符长度,在所述非标签部分确定所述待替换关键词的起始位置。
30、可选的,所述非标签部分确定子单元,具体用于在所述目标富文本数据中遍历到第一个左括号字符之后,若先遍历到右括号字符,则将所述目标富文本数据中所述右括号字符之后的部分确定为非标签部分,若先遍历到第二个左括号字符,则将所述目标富文本数据中所述第一个左括号字符后的部分确定为非标签部分。
31、可选的,所述关键词替换单元包括:左右字符串截取子单元、拼接子单元和替换子单元,
32、所述左右字符串截取子单元,用于基于所述起始位置,在所述非标签部分截取左字符串文本和右字符串文本;
33、所述拼接子单元,用于将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接;
34、所述替换子单元,用于将所述非标签部分中的所述待替换关键词替换为拼接后的所述目标关键词。
35、可选的,所述关键词替换单元还包括:高亮标记子单元,
36、所述高亮标记子单元,用于所述拼接子单元将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接之前,对所述目标关键词进行高亮标记。
37、借由上述技术方案,本公开提供的一种基于富文本数据的关键词替换方法及装置,可应用于人工智能领域或金融领域。本公开可以获得待替换关键词和目标关键词;基于目标富文本数据,对待替换关键词构建相应的next数组;基于kmp字符串匹配算法,利用待替换关键词和next数组,在目标富文本数据的非标签部分确定待替换关键词的起始位置;利用起始位置,将非标签部分中的待替换关键词替换为目标关键词。本公开利用kmp字符串匹配算法实现富文本数据的关键词匹配,可以高效对关键词进行替换操作,降低了关键词匹配过程的时间复杂度,从而减少了系统响应时间,进而提升了用户体验。
38、上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
1.一种基于富文本数据的关键词替换方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于kmp字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置,包括:
3.根据权利要求2所述的方法,其特征在于,所述遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分,包括:
4.根据权利要求1所述的方法,其特征在于,所述利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词,包括:
5.根据权利要求4所述的方法,其特征在于,在将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接之前,所述方法还包括:
6.一种基于富文本数据的关键词替换装置,其特征在于,包括:关键词获得单元、数组构建单元、起始位置确定单元和关键词替换单元,
7.根据权利要求6所述的装置,其特征在于,所述起始位置确定单元包括:非标签部分确定子单元、搜索子单元、结束位置确定子单元和起始位置确定子单元,
8.根据权利要求7所述的装置,其特征在于,所述非标签部分确定子单元,具体用于在所述目标富文本数据中遍历到第一个左括号字符之后,若先遍历到右括号字符,则将所述目标富文本数据中所述右括号字符之后的部分确定为非标签部分,若先遍历到第二个左括号字符,则将所述目标富文本数据中所述第一个左括号字符后的部分确定为非标签部分。
9.根据权利要求6所述的装置,其特征在于,所述关键词替换单元包括:左右字符串截取子单元、拼接子单元和替换子单元,
10.根据权利要求9所述的装置,其特征在于,所述关键词替换单元还包括:高亮标记子单元,