- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息科学系.PDF
信息科学系
低年级讨论班
(3)
裘宗燕
北京大学数学学院信息科学系
2010年3月~6月
本科生讨论班报告(1) 北京大学数学学院信息科学系 裘宗燕 2010年2月18 日/1
检索
《代码之美》第4章
本科生讨论班报告(1) 北京大学数学学院信息科学系 裘宗燕 2010年2月18 日/2
问题
问题:在大量数据中定位某些数据,也就是“查找”或“检索”
检索是大部分程序中经常做的工作
本章通过一个简单具体问题,分析查找过程中对各种因素的权衡,提出
一些有趣的技术和问题,其中特别关注“时间开销”
问题:作者博客/ongoing 有大量访问。到2006
年作者撰写本文时,日志记录了140,070,104 条信息(1.4 亿条),占
用28,489,788,532 字节存储空间(约28 G 字节)
一个日志行的形式(200字符):
c80-216-32-218.cm-upc.chello.se - - [08/Oct/2006:06:37:48 -0700] GET
/ongoing/When/200x/2006/10/08/Grief-Lessons HTTP/1.1 200 5945
/ongoing/ Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.1; SV1; .NET CLR 1.1.4322)
某人2006年10月8 日从瑞典chello匿名登录,在Windows NT 上用IE6.0 浏览
器,通过HTTP/1.1 协议请求文档Grief-Lessons,该请求从博客首页得到文
件链接,被成功处理,返回5945 字节的回复,等等
本科生讨论班报告(1) 北京大学数学学院信息科学系 裘宗燕 2010年2月18 日/3
问题
分析一个网站的服务器日志,可以得到很多有用信息。如
哪些IP 来的访问量大
哪些文章最受欢迎
下面先考虑:哪篇文章阅读次数最多
人工检索完全不实际。要用计算机检索,就要描述被检索的串
要做的是检索类似下面形式的串的文本行(日志行)
/ongoing/When/200x/2006/10/08/Grief-Lessons
直接写代码查找太麻烦;直接写要求匹配的串,要写太多
这些做法太费事,而且缺乏灵活性(需求可能变化)
最好是用正则表达式描述所需串的匹配模式
从应用看,正则表达式就是写文本匹配模式的语言。学会正则表达式,
能很方便地做许多文本处理问题。好程序员都应该熟悉它
本科生讨论班报告(1) 北京大学数学学院信息科学系 裘宗燕 2010年2月18 日/4
正则表达式
由于作者博客的文件组织结构,可以用一个很简单的正则表达式描述需
要在日志文件里检索访问博客文件的行:
GET /ongoing/When/\d\d\dx/\d\d\d\d/\d\d/\d\d/[^ .]+
对其他检索问题,写出的表达式可能更简单或更复杂
解释:(实例:/ongoing/When/200x/2006/10/08/Grief-Lessons )
开始是一串正常字符
\d 与数字匹配,x,/ 都是普通字符
[^ .]与任何非空格非圆点字符匹配,+ 表示匹配一个或多个
最后的空格表示要求匹配一个空格
模式最后的 [^ .]+能匹配Grief-Lessons,不匹配IMG0038.jpg
下面用这个正则表达式检索信息
可直接在命令行中调
文档评论(0)