中文匹配(正则)

中文匹配

看到希希在做的一道很有意思的题目,顺手作为SE Individual Project来训练一下。

题目

给定一个网页, https://www.douban.com/note/170389265/ ,把这个网页的内容复制到一个文件中,把文件使用程序进行处理,把所有的中文提取出来,打印出来,找出其中以“网”字作为结尾,并且名称长度不超过三个汉字的网站名,把这些名称打印出来。

需求分析

start at 23:39

将网站复制到文件中,打印文件中所有中文,之后找出以“网”字作为结尾,并且名称长度不超过三个汉字的网站名并打印。

我们需要排除掉网站的英文、符号,只剩下中文并打印。

对于网站的名字,我们要找那些网站名字小于等于三个汉字的,并且以“网”为结尾的名字。

end at 23:41

cost time 2min

设计

start at 23:42

汉字的python表示:

首先我们知道文字在计算机里面的表达主要分为GBK、Unicode、UTF-8这三种形式,那么他们有什么区别呢?

UTF-8是Linux下的一种通用编码,可以对汉字编码,应该是Linux环境下能打开看到汉字的唯一编码。

GBK是Windows环境下的一种汉字编码,其中GB2312编码也算是GBK编码,这种编码在Unix环境中打开是乱码。

Unicode是一种二进制编码,所有的UTF-8和GBK编码都得通过Unicode编码进行转译,UTF-8和GBK编码之间不能之间转换,要在Unicode为中转站才能转换。

当然,在这个程序里面我们使用UTF-8

随后就是如何提取汉字的操作,我的评价是:正则表达式!

Python 正则表达式 | 菜鸟教程 (runoob.com)

不会的可以去菜鸟教程看。。。不多做赘述

还有一个python如何读取txt的操作!

python如何读取txt文件内容-Python教程-PHP中文网

当然也是贴网址自己看啦哈哈哈哈

end at 23:50

cost time 8min

编码

start at 23:51

import re

f = open("C:\\Users\\32068\\Desktop\\1\\pipei.txt", "r", encoding='utf-8')
byt = f.readlines()
for index in range(len(byt)):
    a_list = re.findall(r'[\u4e00-\u9fa5]', byt[index])
    if len(a_list) != 0:
        print("".join(str(i) for i in a_list))
print("\n")
for index in range(len(byt)):
    a_list = re.findall(r'[\u4e00-\u9fa5]', byt[index])
    if len(a_list)!=0 and len(a_list)==3 and a_list[2]==chr(32593):
        print(a_list[0]+a_list[1]+a_list[2])

start at 0:08

cost 17min

测试

start at 0:08

http://www.techweb.com.cn/news/index.shtml 资讯频道- 新媒体、新技术、新商业互动交流
http://www.u148.net/有意思吧
http://www.pedaily.cn/投资界
http://www.douban.com/豆瓣
http://baibanbao.net/白板报
http://fenghua.blog.paowang.net/
http://cn.engadget.com/最新电子信息
http://www.lifeweek.com.cn/三联生活周刊
http://www.fengtang.com/冯唐文学
http://www.kdnet.net/凯迪网络
http://weibo.com/
HTtp://www.caixin.cn 财新网
http://www.ftchinese.com 金融时报
共识网笑来的博客:www.lixiaolai.com 
http://www.infzm.com/南方周末
http://www.alibuybuy.com/互联网的那些事
http://songshuhui.net/科学松鼠会
http://www.huxiu.com/虎嗅网
http://www.niubo.cc/妞博网
http://www.leiphone.com/雷锋网
http://www.caijing.com.cn/财经网
http://mail.21cn.com/邮箱
http://jianshu.io/简书
http://w2china.blog.163.com/中国娃娃
http://blog.sina.com.cn/phoenixqbzh凤凰卫视
http://www.my1510.cn/index.php一五一十部落
http://time-weekly.com/时代周刊
http://ourfolk.net/青马博客
http://www.sznews.com/深圳新闻网
http://www.zreading.cn/左岸读书
http://www.eduww.com/左岸文化
http://www.vancl.com/?source=lergao5566&SourceSunInfo=216401凡客
http://www.amazon.cn/?source=w-90001539
http://yuedukong.com/悦读资讯
http://www.huangjiwei.com/blog/孤岛客
http://www.l99.com/media立体网
http://yupiao.info/余票查询网
http://www.bttiantang.com/
http://yun.baidu.com/百度云
http://www.topnews9.com/九个头条
http://www.codoon.com/咕咚运动
http://www.8264.com/户外资料网
http://bbs.cyclist.cn/thread-51880-1-1.html骑行者
http://bbs.868dc.com/单车论坛
http://www.qqride.com/骑盟网
http://www.rsrc.gov.cn/home/index.aspx乳山就业网
http://www.xili123.com/site/index戏理
http://www.duokan.com/多看阅读
http://www.yinxiang.com/印象笔记
http://huaban.com/花瓣
http://web2.qq.com/webqq.html
http://222.73.7.154/博通
1、文学100:http://wenxue100.com(经典阅读) 
2、鲜果:http://xianguo.com/index(国内最大的内容订阅器) 
3、果壳:http://www.guokr.com/(科技也有意思) 
4、大家:http://dajia.qq.com/(最好的专栏集合平台) 
5、没谱:www.meipuer.com (文艺类精华阅读) 
6、时代:www.time.com/ (开拓阅读视野) 
7、草根:www.20ju.com	(互联网界的读者文摘) 
8、佳人:http://jiaren.org/(温暖清新的文字) 
9、剪客http://www.vjianke.com/2/findclip.clip

运行结果为

资讯频道新媒体新技术新商业互动交流
有意思吧
投资界
豆瓣
白板报
最新电子信息
三联生活周刊
冯唐文学
凯迪网络
财新网
金融时报
共识网笑来的博客
南方周末
互联网的那些事
科学松鼠会
虎嗅网
妞博网
雷锋网
财经网
邮箱
简书
中国娃娃
凤凰卫视
一五一十部落
时代周刊
青马博客
深圳新闻网
左岸读书
左岸文化
凡客
悦读资讯
孤岛客
立体网
余票查询网
百度云
九个头条
咕咚运动
户外资料网
骑行者
单车论坛
骑盟网
乳山就业网
戏理
多看阅读
印象笔记
花瓣
博通
文学经典阅读
鲜果国内最大的内容订阅器
果壳科技也有意思
大家最好的专栏集合平台
没谱文艺类精华阅读
时代开拓阅读视野
草根互联网界的读者文摘
佳人温暖清新的文字
剪客


财新网
虎嗅网
妞博网
雷锋网
财经网
立体网
骑盟网

无明显bug

end at 0:10

cost 2min

思路说明

我们先把文字复制到文本文件中,随后我们利用python将文本文件读入程序。

随后我们使用正则表达式对字符串元组进行正则匹配,将中文挑选出来并按行打印。

最后我们将每一行的文字进行分析,假如文字列表长度小于等于3,并且最后一个字是网,就输出。

时间比较花费

需求分析2min
设计8min
编码17min
测试2min

已知问题

  1. 这小于等于三个字的以网结尾的网站名,在“共识网笑来的博客”中不确定“共识网“是否算作这个类别

    解决方案:假如算的话,我也没有什么很好的办法能够分别出”凯迪网络“的凯迪网和”共识网笑来的博客“中的共识网

    会的hxd可以教教嘛

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钰见梵星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值