- java parser乱码_HtmlParser 2.0 中文乱码问题
福建低调
javaparser乱码
对于HTMLParser2.0工具包我们需要修改其中的Page.java文件使其适用中文的html文件分析。主要是把protectedstaticfinalStringDEFAULT_CHARSET="ISO-8859-1";修改成protectedstaticfinalStringDEFAULT_CHARSET="gb2312";主要是兼容charset='GBK'声明的页面。--因为采用默认的
- vue项目能正常启动但是打包报错
小全upup
vue.js前端javascript
项目执行npmrunserve/dev的图一点影响没有跑起来之后页面也非常的正常然后就来到了打包环境执行打包命令报这种错误-htmlparser.js:255HTMLParser.parse[mydemo]/[html-minifier-terser]/src/htmlparser.js:255:15-runMicrotasks-task_queues.js:95processTicksAndRe
- itchat报错'HTMLParser' object has no attribute 'unescape'在python3.9
g9efwi8b
itchat里面有个地方经常报错,C:\Users\-username-\AppData\Local\Programs\Python\Python39\Lib\site-packages\itchat\utils.py的第70行d[k]=htmlParser.unescape(d[k])改为importhtmld[k]=html.unescape(d[k])这样就不容易报错了.
- 微信小程序中显示html富文本的方法
大胡子的机器人
image.png使用方法:git地址:https://github.com/icindy/wxParse一、下载wxParse文件image.pngwxParse/-wxParse.js(必须存在)-html2json.js(必须存在)-htmlparser.js(必须存在)-showdown.js(必须存在)-wxDiscode.js(必须存在)-wxParse.wxml(必须存在)-wxPa
- 使用Jsoup解析html网页
程序猿老王
开发工具htmlJsoup
一、JSOUP简介在以往用java来处理解析HTML文档或者片段时,我们通常会采用htmlparser(http://htmlparser.sourceforge.net/)这个开源类库。现在我们有了JSOUP,以后的处理HTML的内容只需要使用JSOUP就已经足够了,JSOUP有更快的更新,更方便的API等。jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它
- Python的HTMLParser库的用法
weixin_30777913
PythonPythonHTMLParse
HTMLParser库的用法如果我们要编写一个搜索引擎,第一步是用爬虫把目标网站的页面抓下来,第二步就是解析该HTML页面,看看里面的内容到底是新闻、图片还是视频。假设第一步已经完成了,第二步应该如何解析HTML呢?HTML本质上是XML的子集,但是HTML的语法没有XML那么严格,所以不能用标准的DOM或SAX来解析HTML。好在Python提供了HTMLParser来非常方便地解析HTML,只
- Vue3.4的新变化
大鲤余
vue.jsjavascript前端
解析器3.4版本解析器速度提升2倍,提高了SFC构建性能。之前版本Vue使用递归下降解析器,该解析器依赖于许多正则表达式和前瞻搜索。新的解析器使用基于htmlparser2中的标记生成器的状态机标记生成器,它仅迭代整个模板字符串一次。响应式上3.4还对响应式系统进行了重大重构,目标是提高计算属性的重新计算效率。constcount=ref(0)constisEven=computed(()=>co
- Python的HTMLParser模块:HTML解析的得力工具
小雨淋林
Python基础入门教程pythonxml
在Python中,HTMLParser模块提供了一个简单而强大的HTML解析器,用于解析HTML文档并提取其中的信息。本篇博客将深入讨论HTMLParser模块,包括基本使用、自定义解析器的创建以及实际应用中的示例。1.HTMLParser模块概述HTMLParser模块是Python标准库中的一部分,提供了一个基于事件的HTML解析器。它继承自Python的SGMLParser类,用于将HTML
- html.parser --- 简单的 HTML 和 XHTML 解析器
知识的宝藏
python
源代码:Lib/html/parser.py这个模块定义了一个HTMLParser类,为HTML(超文本标记语言)和XHTML文本文件解析提供基础。classhtml.parser.HTMLParser(*,convert_charrefs=True)创建一个能解析无效标记的解析器实例。如果convert_charrefs为True(默认值),则所有字符引用(script/style元素中的除外)
- python 爬取本地的HTML中的数据并将其存储进Excel表格中
是兔子不是tu子
pythonexcel开发语言
我有一个HTML文件保存在本地,我需要爬取里面的某些数据并将爬取到的部分数据存储进Excel表中我的解决思路如下:先爬取数据按照步长将数据分割成二维列表循环遍历将需要的数据存入Excel表中实现代码如下:#coding:utf-8fromlxmlimportetreeimportxlsxwriter#:载入模块#解析本地文件使用etree.parseparser=etree.HTMLParser(
- 2.爬虫之xpath选择器&selenium模块
开局签到Python基础
9.爬虫爬虫seleniumpython
1.xpath选择器1.1xpath介绍xpath:是一门在xml/html文档中查找信息的语句.安装:pipinstalllxml导入:fromlxmlimportetree生成对象:html=etree.HTML('html文档字符串')html=etree.parse('.html文件路径',etree.HTMLParser())1.2选取节点表达式查询节点:/:从根节点选取(值是一个对象)
- 02 数据解析
Ag刘晓婷
xpath//input[@id='search_input']//div/ul[@class='lg_tnav_wrap']/li[1]/a//div/ul[@class='lg_tnav_wrap']/li[1]/a[@*]lxmletreeparserfromlxmlimportetreehtml=etree.HTML(text)parser=etree.HTMLParser(encodin
- python爬虫
NoNamePlus
普通学习笔记python爬虫开发语言
1.爬虫的基本流程用urllib或是requests库把网页的HTML代码拉到本地用HTMLParser,Xpath,BeautifulSoup等库解析HTML代码,找到想要的东西2.HTMLParser廖雪峰的网站看资料3.urllib廖雪峰的网站看资料4.requests菜鸟教程看资料#GET方法importrequestsHTML=requests.get("网址",headers={"Us
- pycharm 切换 python3.9 报错 'HTMLParser' object has no attribute 'unescape' 解决
程序员的一天
有的bug,莫名其妙就好了...python3.9报错"AttributeError:'HTMLParser'objecthasnoattribute'unescape'"异常分析解决。一、问题描述安装python3.9版本后,pycharm中切换python3.9版本,创建虚拟环境报错:"AttributeError:'HTMLParser'objecthasnoattribute'unesca
- 怎么在html中使用less语言,Less.Html 示例五:使用方法详解
潘儒锋
Less.Html示例五:使用方法详解0.从解析开始引入Less.Html的命名空间:usingLess.Html;调用静态类型HtmlParser的Parse方法:Documentdocument=HtmlParser.Parse(testHtml);返回的是HTMLDOM标准的文档对象,我只实现了常见的DOM方法,其实DOM方法的设计本身就有繁复的地方,这个以后再说。要方便地查找文档元素,还需
- easyUi重新渲染
Night_zzz
狂野的小怪兽jqueryEasyui重新渲染转载:jQueryEasyUIparser的使用场景|WebUI框架使用参考+http://www.easyui.info/archives/216.htmlparser,故名意思,就是解析器的意思,别看他只有那么几行代码,jQueryEasyui能够根据class就能正常渲染页面全靠它了。一般情况下,我们并用不到解析器,本文主要讨论一下,什么情况下会用
- 输入 URL 到页面渲染的整个流程
晓丽_c080
DNS解析TCP三次握手发送请求,分析url,设置请求报文(头,主体)服务器返回请求的文件(html)浏览器渲染HTMLparser-->DOMTree标记化算法,进行元素状态的标记dom树构建CSSparser-->StyleTree解析css代码,生成样式树attachment-->RenderTree结合dom树与style树,生成渲染树layout:布局GPUpainting:像素绘制页面
- 「三」浏览器中CSS 语法解析过程
废柴码农
CSS语法解析过程1.在浏览器系列文章中,今天终点讲下CSS解析这块内容.我们已知浏览器的渲染流程中HTMLParser会生成DOM树,而CSSParser会将解析结果附加到DOM树上,如下图:image.png解析分为词法分析和语法分析。image.png词法分析,也是编译原理中的术语,从左到右一个字符一个字符的读入源程序,对字符流进行扫描,根据构词规则识别单词。这一过程可以使用lex等工具自动
- (水印)html转图片
Peak_Gao
javajava
gui.avahtml2image2.0.1xml-apisxml-apis1.4.01"+"IP地址:127.0.0.1国家:AAA\n"+"省份:AAAA位置:XXXXXXX";HtmlParserhtmlParser=newHtmlParserImpl();htmlParser.loadHtml(htmlTemplate);ImageRendererimageRenderer=newImag
- ios 常见问题解决
weixin_30706691
xcode移动开发c/c++
一,libxml/HTMLparser.hfilenotfind第一种方法:点击左边项目的根目录,再点击右边的BuildSettings,手工输入文字:“Headersearchpaths”,然后单击(或双击,点击弹出面板下面的“+”号进行添加)“Headersearchpaths”右边的空白处,输入:/usr/include/libxml2第二种方法:点击左边项目的根目录,再点击右边的Build
- java爬虫爬取百度图片_Java实现爬取百度图片的方法分析
weixin_39552768
java爬虫爬取百度图片
本文实例讲述了Java实现爬取百度图片的方法。分享给大家供大家参考,具体如下:在以往用java来处理解析HTML文档或者片段时,我们通常会采用htmlparser(http://htmlparser.sourceforge.net/)这个开源类库。现在我们有了JSOUP,以后的处理HTML的内容只需要使用JSOUP就已经足够了,JSOUP有更快的更新,更方便的API等。jsoup是一款Java的H
- 浏览器渲染页面的大致过程
路人丁0417
[图片上传失败...(image-735179-1630336184679)]渲染引擎启动html解释器(htmlParser)解析html源码,根据DOMAPI创建domtree,Browser进程并行下载网络资源(css/image/js...)。在dom树中,每个html标签都有一个对应的节点,每个文本也有对应的文本节点,根节点就是documentElement,对应的是html节点。当遇到
- python调用html数据_Python读取HTML页面
柒八酒
python调用html数据
有一个类库叫作beautifulsoup。使用这个库,可以搜索html标签的值,并获取页面标题和页面标题列表等特定数据。安装Beautifulsoup使用Anaconda软件包管理器安装所需的软件包及其相关软件包。condainstallBeaustifulsoap读取HTML文件在下面的例子中,我们请求一个url被加载到python环境中。然后使用htmlparser参数来读取整个html文件。
- Python调用Halcon踩坑记录
唐浅浅
Pythonpython
原配置为:PyCharm2019.1+Python3.71.使用python3.7.2安装mvtec-halcon提示找不到合适版本查看HalconPyhton接口使用文档,Python需要3.8版本以上2.安装最新的Python版本安装Python3.9,使用PyCharm切换python3.9报错‘HTMLParser‘objecthasnoattribute‘unescape‘查看官网pyt
- 数据处理之XPATH提取数据--------常用方法
西红市杰出青年
python大数据开发语言
**etree数据处理之XPATH提取数据--------常用方法**parser=etree.HTMLParser(encoding=‘utf-8’)html=etree.parse(‘A000000_table.html’,parser=parser)/AAA绝对路径表示必须以AAA开头print(html.xpath(‘/html’)[0])/AAA/BBB选择AAA下面的所有BBB元素但是
- Python爬虫:HTML网页解析方法小结
Python程序员小泉
python编程python入门python爬虫python入门python开发
要理解python是如何解析网页的,首先要理解什么是网页解析器。简单的说就是用来解析html网页的工具,准确的说:它是一个HTML网页信息提取工具,就是从html网页中解析提取出“我们需要的有价值的数据”或者“新的URL链接”的工具。解析HTML:层次化的数据有多个解析HTML的第三方库,例如:LXML,BeautifulSoup,HTMLParser等等。解析HTML面临的问题:没有统一的标准、
- 基于python的简介以及应用知识,快做好,要发车啦(文末有个投票)
阿玥的小东东
python开发语言爬虫阿玥的小东东程序人生
目录简介:流程:实现:环境:UrlManager类HtmlDownloader类HtmlParser类BuildIndex
- 天天都在使用CSS,那么CSS的原理是什么呢?
周小肆
作为前端,我们每天都在与CSS打交道,那么CSS的原理是什么呢?一、浏览器渲染开篇,我们还是不厌其烦的回顾一下浏览器的渲染过程,先上图:webkitrender正如上图所展示的,我们浏览器渲染过程分为了两条主线:其一,HTMLParser生成的DOM树;其二,CSSParser生成的StyleRules;在这之后,DOM树与StyleRules会生成一个新的对象,也就是我们常说的RenderTre
- python cgi
SkTj
cookie操作:限制4kb,300个,每个域名20个image.pngcgi.escapeimage.pngurllib.parse.quote_plusunquote_plusimage.pngopen().read()HTMLParser().unescape()image.pngcgi.FieldStorage()xx.keys()image.pngos.path.abspath(path
- python qqbot
luoboshu
笔记python
在pythonv3.9中用qqbot会出现一个错误AttributeError:‘HTMLParser’objecthasnoattribute‘unescape’:解决方案:Startinginpython3.9usingHTMLParser()unescape()willresultintheerrorAttributeError:‘HTMLParser’objecthasnoattribut
- windows下源码安装golang
616050468
golang安装golang环境windows
系统: 64位win7, 开发环境:sublime text 2, go版本: 1.4.1
1. 安装前准备(gcc, gdb, git)
golang在64位系
- redis批量删除带空格的key
bylijinnan
redis
redis批量删除的通常做法:
redis-cli keys "blacklist*" | xargs redis-cli del
上面的命令在key的前后没有空格时是可以的,但有空格就不行了:
$redis-cli keys "blacklist*"
1) "blacklist:12:
[email protected]
- oracle正则表达式的用法
0624chenhong
oracle正则表达式
方括号表达示
方括号表达式
描述
[[:alnum:]]
字母和数字混合的字符
[[:alpha:]]
字母字符
[[:cntrl:]]
控制字符
[[:digit:]]
数字字符
[[:graph:]]
图像字符
[[:lower:]]
小写字母字符
[[:print:]]
打印字符
[[:punct:]]
标点符号字符
[[:space:]]
- 2048源码(核心算法有,缺少几个anctionbar,以后补上)
不懂事的小屁孩
2048
2048游戏基本上有四部分组成,
1:主activity,包含游戏块的16个方格,上面统计分数的模块
2:底下的gridview,监听上下左右的滑动,进行事件处理,
3:每一个卡片,里面的内容很简单,只有一个text,记录显示的数字
4:Actionbar,是游戏用重新开始,设置等功能(这个在底下可以下载的代码里面还没有实现)
写代码的流程
1:设计游戏的布局,基本是两块,上面是分
- jquery内部链式调用机理
换个号韩国红果果
JavaScriptjquery
只需要在调用该对象合适(比如下列的setStyles)的方法后让该方法返回该对象(通过this 因为一旦一个函数称为一个对象方法的话那么在这个方法内部this(结合下面的setStyles)指向这个对象)
function create(type){
var element=document.createElement(type);
//this=element;
- 你订酒店时的每一次点击 背后都是NoSQL和云计算
蓝儿唯美
NoSQL
全球最大的在线旅游公司Expedia旗下的酒店预订公司,它运营着89个网站,跨越68个国家,三年前开始实验公有云,以求让客户在预订网站上查询假期酒店时得到更快的信息获取体验。
云端本身是用于驱动网站的部分小功能的,如搜索框的自动推荐功能,还能保证处理Hotels.com服务的季节性需求高峰整体储能。
Hotels.com的首席技术官Thierry Bedos上个月在伦敦参加“2015 Clou
- java笔记1
a-john
java
1,面向对象程序设计(Object-oriented Propramming,OOP):java就是一种面向对象程序设计。
2,对象:我们将问题空间中的元素及其在解空间中的表示称为“对象”。简单来说,对象是某个类型的实例。比如狗是一个类型,哈士奇可以是狗的一个实例,也就是对象。
3,面向对象程序设计方式的特性:
3.1 万物皆为对象。
- C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)
aijuans
C/C++求职面试必备考点
找工作在即,以后决定每天至少写一个知识点,主要是记录,逼迫自己动手、总结加深印象。当然如果能有一言半语让他人收益,后学幸运之至也。如有错误,还希望大家帮忙指出来。感激不尽。
后学保证每个写出来的结果都是自己在电脑上亲自跑过的,咱人笨,以前学的也半吊子。很多时候只能靠运行出来的结果再反过来
- 程序员写代码时就不要管需求了吗?
asia007
程序员不能一味跟需求走
编程也有2年了,刚开始不懂的什么都跟需求走,需求是怎样就用代码实现就行,也不管这个需求是否合理,是否为较好的用户体验。当然刚开始编程都会这样,但是如果有了2年以上的工作经验的程序员只知道一味写代码,而不在写的过程中思考一下这个需求是否合理,那么,我想这个程序员就只能一辈写敲敲代码了。
我的技术不是很好,但是就不代
- Activity的四种启动模式
百合不是茶
android栈模式启动Activity的标准模式启动栈顶模式启动单例模式启动
android界面的操作就是很多个activity之间的切换,启动模式决定启动的activity的生命周期 ;
启动模式xml中配置
<activity android:name=".MainActivity" android:launchMode="standard&quo
- Spring中@Autowired标签与@Resource标签的区别
bijian1013
javaspring@Resource@Autowired@Qualifier
Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource、 @PostConstruct及@PreDestroy。
1. @Autowired @Autowired是Spring 提供的,需导入 Package:org.springframewo
- Changes Between SOAP 1.1 and SOAP 1.2
sunjing
ChangesEnableSOAP 1.1SOAP 1.2
JAX-WS
SOAP Version 1.2 Part 0: Primer (Second Edition)
SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)
SOAP Version 1.2 Part 2: Adjuncts (Second Edition)
Which style of WSDL
- 【Hadoop二】Hadoop常用命令
bit1129
hadoop
以Hadoop运行Hadoop自带的wordcount为例,
hadoop脚本位于/home/hadoop/hadoop-2.5.2/bin/hadoop,需要说明的是,这些命令的使用必须在Hadoop已经运行的情况下才能执行
Hadoop HDFS相关命令
hadoop fs -ls
列出HDFS文件系统的第一级文件和第一级
- java异常处理(初级)
白糖_
javaDAOspring虚拟机Ajax
从学习到现在从事java开发一年多了,个人觉得对java只了解皮毛,很多东西都是用到再去慢慢学习,编程真的是一项艺术,要完成一段好的代码,需要懂得很多。
最近项目经理让我负责一个组件开发,框架都由自己搭建,最让我头疼的是异常处理,我看了一些网上的源码,发现他们对异常的处理不是很重视,研究了很久都没有找到很好的解决方案。后来有幸看到一个200W美元的项目部分源码,通过他们对异常处理的解决方案,我终
- 记录整理-工作问题
braveCS
工作
1)那位同学还是CSV文件默认Excel打开看不到全部结果。以为是没写进去。同学甲说文件应该不分大小。后来log一下原来是有写进去。只是Excel有行数限制。那位同学进步好快啊。
2)今天同学说写文件的时候提示jvm的内存溢出。我马上反应说那就改一下jvm的内存大小。同学说改用分批处理了。果然想问题还是有局限性。改jvm内存大小只能暂时地解决问题,以后要是写更大的文件还是得改内存。想问题要长远啊
- org.apache.tools.zip实现文件的压缩和解压,支持中文
bylijinnan
apache
刚开始用java.util.Zip,发现不支持中文(网上有修改的方法,但比较麻烦)
后改用org.apache.tools.zip
org.apache.tools.zip的使用网上有更简单的例子
下面的程序根据实际需求,实现了压缩指定目录下指定文件的方法
import java.io.BufferedReader;
import java.io.BufferedWrit
- 读书笔记-4
chengxuyuancsdn
读书笔记
1、JSTL 核心标签库标签
2、避免SQL注入
3、字符串逆转方法
4、字符串比较compareTo
5、字符串替换replace
6、分拆字符串
1、JSTL 核心标签库标签共有13个,
学习资料:http://www.cnblogs.com/lihuiyy/archive/2012/02/24/2366806.html
功能上分为4类:
(1)表达式控制标签:out
- [物理与电子]半导体教材的一个小问题
comsci
问题
各种模拟电子和数字电子教材中都有这个词汇-空穴
书中对这个词汇的解释是; 当电子脱离共价键的束缚成为自由电子之后,共价键中就留下一个空位,这个空位叫做空穴
我现在回过头翻大学时候的教材,觉得这个
- Flashback Database --闪回数据库
daizj
oracle闪回数据库
Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。
在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分Flashback Query,Flashbac
- 简单排序:插入排序
dieslrae
插入排序
public void insertSort(int[] array){
int temp;
for(int i=1;i<array.length;i++){
temp = array[i];
for(int k=i-1;k>=0;k--)
- C语言学习六指针小示例、一维数组名含义,定义一个函数输出数组的内容
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int * p; //等价于 int *p 也等价于 int* p;
int i = 5;
char ch = 'A';
//p = 5; //error
//p = &ch; //error
//p = ch; //error
p = &i; //
- centos下php redis扩展的安装配置3种方法
dcj3sjt126com
redis
方法一
1.下载php redis扩展包 代码如下 复制代码
#wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz
2 tar -zxvf 解压压缩包,cd /扩展包 (进入扩展包然后 运行phpize 一下是我环境中phpize的目录,/usr/local/php/bin/phpize (一定要
- 线程池(Executors)
shuizhaosi888
线程池
在java类库中,任务执行的主要抽象不是Thread,而是Executor,将任务的提交过程和执行过程解耦
public interface Executor {
void execute(Runnable command);
}
public class RunMain implements Executor{
@Override
pub
- openstack 快速安装笔记
haoningabc
openstack
前提是要配置好yum源
版本icehouse,操作系统redhat6.5
最简化安装,不要cinder和swift
三个节点
172 control节点keystone glance horizon
173 compute节点nova
173 network节点neutron
control
/etc/sysctl.conf
net.ipv4.ip_forward =
- 从c面向对象的实现理解c++的对象(二)
jimmee
C++面向对象虚函数
1. 类就可以看作一个struct,类的方法,可以理解为通过函数指针的方式实现的,类对象分配内存时,只分配成员变量的,函数指针并不需要分配额外的内存保存地址。
2. c++中类的构造函数,就是进行内存分配(malloc),调用构造函数
3. c++中类的析构函数,就时回收内存(free)
4. c++是基于栈和全局数据分配内存的,如果是一个方法内创建的对象,就直接在栈上分配内存了。
专门在
- 如何让那个一个div可以拖动
lingfeng520240
html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml
- 第10章 高级事件(中)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 计算两个经纬度之间的距离
roadrunners
计算纬度LBS经度距离
要解决这个问题的时候,到网上查了很多方案,最后计算出来的都与百度计算出来的有出入。下面这个公式计算出来的距离和百度计算出来的距离是一致的。
/**
*
* @param longitudeA
* 经度A点
* @param latitudeA
* 纬度A点
* @param longitudeB
*
- 最具争议的10个Java话题
tomcat_oracle
java
1、Java8已经到来。什么!? Java8 支持lambda。哇哦,RIP Scala! 随着Java8 的发布,出现很多关于新发布的Java8是否有潜力干掉Scala的争论,最终的结论是远远没有那么简单。Java8可能已经在Scala的lambda的包围中突围,但Java并非是函数式编程王位的真正觊觎者。
2、Java 9 即将到来
Oracle早在8月份就发布
- zoj 3826 Hierarchical Notation(模拟)
阿尔萨斯
rar
题目链接:zoj 3826 Hierarchical Notation
题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。
解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。 这题是最后10分钟出的,因为没有考虑value为{}的情