416乔向阳+正则表达式,易学实用的技术(投稿)+#第4组第7周打卡#

有一天,老板对小明说,去咱们网站xxx行业找100个公司,打电话调研下他们对网站的反馈评价,分析下用户需求。

小明找到技术希望帮忙导出用户电话数据。可技术大哥正在赶一个重要项目,对小明的要求很不耐烦:“分类列表不都是用户电话吗?100个又不多,自己弄!”

小明打开了某个列表,一个个复制粘贴电话到Excel表格,花了20分钟时间做这种机械工作。


可如果小明懂正则表达式的话,这个工作只需要1分钟。


浏览器右键查看网页源代码,把代码粘贴到支持正则表达式的编辑器中(Editplus、Sublime等,是个编程工具都支持)

打开查找功能,输入正则表达式 1d{10},如上图所示,然后点击查找全部按钮,一下所有电话号码就被选中了,复制粘贴电话到另一个新建文件中,搞定。


什么是正则表达式?

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。

很可能你使用过Windows下用于文件查找的通配符,也就是*和?,如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。

正则表达式提供很多符号来匹配不同的字符串,比如比如s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。w匹配字母或数字或下划线或汉字,^匹配字符串的开始,$匹配字符串的结束。

有了这些符号搭配,就可以写出复杂的字符串匹配规则,迅速找到需要的内容。

那刚才输入的1d{10}是个什么鬼东西?

大家都知道我国手机号都是11位,而且开头一定是1对吧,d在正则表达式里表示匹配数字(从0到9),而{10}代表的意思是一共10个数字,这样1d{10}匹配出来的就是手机号码了。

互联网产品中哪里会用到正则表达式呢?

前端数据校验

最简单的就是登录注册的校验部分。

用户输入的用户名符合规范吗?用户输入的是邮箱地址吗?

以邮箱为例子,正则表达式如下:

w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

通过这个正则表达式就可以判断用户输入的是否是邮件地址。

还有很多很多的前端校验工作都用正则表达式实现,比如判断用户的QQ号输入(至少像QQ号):

[1-9]d{4,}

从这个表达式看,QQ号开头是1-9数字中的一个(没见过0开头的QQ号吧),后面的d{4,}表达意思的是最少加上4个数字,这样的结构才像一个QQ号。(QQ号最短5位)

还有更多的例子,常用正则表达式如下:


采集爬取

大数据这些年非常火,但如果你没有有足够多的数据怎么办?

采集爬取技术差不多是一个程序员的必备技能,而采集爬取什么内容,差不多都会用到正则表达式。

用来匹配页面里需要的数据和字段,格式化以后放到自己的数据库中。

比如墨迹天气的数据就是采集了不同的数据源,并通过机器学习的方法进行智能校准。

新网站没内容怎么办?采集内容。

网站流量上不去怎么办?采集内容伪原创。

采集爬取其实有很多有趣的玩法,参见:能利用爬虫技术做到哪些很酷很有趣很有用的事情?

而采集爬取网页基本离不开正则表达式。

听起来很牛逼,那怎么学呢?

推荐先读这篇:30分钟学会正则表达式

实践是最好的老师,为了提升学习效率,建议下载安装专业的正则表达式测试器。

Windows平台下好用的正则表达式测试器


Mac可以下载安装yRegex。

然后把常用的正则表达式都测试验证一遍,然后试着自己去写,然后对比差异。

其他学习资源

正则表达式学习书籍推荐两本《精通正则表达式》、《正则表达式必知必会》



国外的优秀在线正则表达式测试器:

http://www.regexr.com/

https://regexper.com/

关于正则表达式的专题网站:

http://Regular-Expressions.info

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容