[发明专利]一种将文本解析成键值对的方法和装置有效
申请号: | 201210180496.6 | 申请日: | 2012-06-01 |
公开(公告)号: | CN103455471A | 公开(公告)日: | 2013-12-18 |
发明(设计)人: | 王尹 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/22 | 分类号: | G06F17/22 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文本 解析 键值 方法 装置 | ||
技术领域
本申请涉及数据处理技术领域,特别是涉及一种将文本解析成键值对的方法和装置。
背景技术
键值(Key-value)对是计算机程序的一种数据存储结构,其通过一个主键(key)可以快速唯一定位到一个键值(value),在需要快速查找和一对一保存数据等场景中得到了广泛应用。
在实际应用中,经常存在这样的需求:将一段文本中有价值的信息提取出来,并且通过键值对的形式进行存储。例如,待处理文本为“icbc001,123456”,其中隐藏了渠道编号(api)和流水号(no)这样的信息,需要将其中的内容提取出来,最终形成如下键值对{api:icbc001,no:123456}。
对待处理文本的格式进行分析,可以得知文本是通过一个既定的符号分隔的字符串,文本中包含不规则的分隔符。故参考已有的字符串操作方法,将文本解析成键值对需要使用获取子串的方式,其中获取子串需要提前知道提取的子串在文本中的起始位置和终止位置;另外,还需要获知“,”等分隔符的位置;在分隔符处截取两个子串,并赋值给相应的变量,即能得到键值对。
依据上述解析思想,现有将文本解析成键值对的方法主要采用一个字符一个字符处理的方式,具体过程如下:
首先,针对待处理文本,从第一个字符开始向后查找,判断有没有一个字符是“,”,找到这个符号后获取该符号所在的位置;
其次,依据获取的“,”的位置,获知“,”前面的子串在整个字符串中的起始位置和终止位置,以及,后面的子串在整个字符串中的起始位置和终止位置;
再次,通过程序设计语言的提取子串的功能分别提取出这两个子串;
最后,将两个子串分别赋值给api和no。
综上,现有将文本解析成键值对的方法需要对文本进行一个字符一个字符的查找以确定文本格式,并且在查找后,需要根据复杂的文本格式确定变量格式,然后在确定变量格式后,需要将这些变量对应的字符串提取出来,然后将其赋值,形成键值对,也即现有将文本解析成键值对的方法需要很多次的全量遍历。然而,在文本格式非常复杂(例如具有多种分隔符),而且文本长度很长(例如子串长度很长)的情况下,多次全量遍历会导致解析效率的大幅下降。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提高将文本解析成键值对的效率。
发明内容
本申请所要解决的技术问题是提供一种将文本解析成键值对的方法和装置,能够提高将文本解析成键值对的效率。
为了解决上述问题,本申请公开了一种将文本解析成键值对的方法,包括:
预置文本格式的文本解析模板;所述文本解析模板用于描述待处理文本的格式和目标键值对的格式;
对所述文本格式的文本解析模板进行编译,得到计算机程序可识别的编译结果,所述编译结果包括:与待处理文本的格式相应的源变量和分隔符,以及与目标键值对的格式相应的目标变量;
依据所述源变量和分隔符在待处理文本中进行匹配,得到所述源变量的值;
保留与所述目标变量相同的源变量及相应的值,作为与所述待处理文本相应的键值对。
优选的,所述文本解析模板包括若干行文本;所述对所述文本格式的文本解析模板进行编译,得到计算机程序可识别的编译结果的步骤,包括:
读取所述文本解析模板的行文本的内容;
确定所述行文本的内容符合的既定语法结构;所述既定语法结构包括定义语法结构和保留语法结构;
从符合所述定义语法结构的所述行文本的内容中识别出与待处理文本的格式相应的源变量和分隔符;
从符合所述保留语法结构的所述行文本的内容中识别出与目标键值对的格式相应的目标变量。
优选的,所述依据所述源变量和分隔符在待处理文本中进行匹配,得到所述源变量的值的步骤,包括:
从待处理文本的第一个字符开始,按照所述源变量和分隔符的顺序在待处理文本中进行匹配,得到的匹配结果中,第一个字符到第一个分隔符之间的文本为第一个源变量的值,两个分隔符之间的文本为对应顺序的源变量的值。
优选的,所述编译结果的数据结构为类对象。
优选的,所述文本解析模板还用于描述解析的数据校验规则;所述编译结果还包括与所述数据校验规则相应的源变量及相应的校验函数;
所述方法还包括:
利用校验函数对所述源变量的值进行校验,若校验通过,则执行所述保留与所述目标变量相同的源变量及相应的值,作为与所述待处理文本相应的键值对的步骤,若校验不通过,则丢弃所述待处理文本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210180496.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:服饰搜索方法及系统
- 下一篇:一种键盘宏功能上传的方法和装置