正则表达式入门(一)

正则表达式与我的朋友Tom

程序员A:“我有一个问题,我不知道如何在庞大的数据表中匹配到我想要的信息?”
程序员B:“用正则表达式啊!”
程序员A:“好吧,那现在我有两个问题了....”

正则表达式?与代数学有关么?这是用在代码中的数学知识么?

正则表达式是用于匹配和替换的利器!

那么匹配和替换又是什么呢?例如我们用过Microsoft Office里的word,对于一篇很长的文档资料,我们要查找里面的某个关键词需要在word查找功能中输入这个关键词,然后会出现这个词,如果看不顺眼,我们还可以替换掉这个词。然而在我们用程序匹配网站上的一些信息时,可没有这现成的工具,这时666,正则表达式就登场了。

Regular expression(正则表达式)的应用非常广泛,如在MySQL中查找相应的信息段,在Python中做网络爬虫爬取页面信息都可以用到。下面做一个Introduction to Regular expression

(表格内容参照文本内容。regex(Regular expression简写)为代码行,检索结果就是检索的结果啦...,#后的内容为注释)

文本:

Tom1, 1Tom2, Tom3, Tom is my friend rather than tom.

Actually, Tom is a dog.

He often drive me crazy  \ _ /

Because, He is very lazy zZZ.

1234567, I get another friend whose name is Steven.

       .     
英文的句号,用来匹配任何一个单一的字符
例如:
regex > Tom.
检索结果 > Tom1 Tom2 Tom3        #没有匹配到Tom 因为空格由另外一个字符匹配
regex > .Tom.
检索结果 > 1Tom2
[ ]
英文的方括号,用来匹配范围
例如:
regex > [Tt]o[Mm]
检索结果 > Tom tom        #[Tt]]表示要么匹配T要么t,同理可知[Mm],因此[Tt]o[Mm]就有四个匹配结果:Tom ToM tom toM
regex > Tom[0-9]
检索结果 > Tom1 Tom2 Tom3        #[0-9]表示0到9中的任意一个数,等同于[0123456789], 当然regex也支持字母[a-z]和[A-Z]

{ }
花括号,用来表示重复的次数
例如:
regex > zZ[2]
检索结果 > zZZ        #符号{ }可以设置两个参数,即{m,n}形式,m表示最小重复次数,n表示最大重复次数,若只设置一个参数则要求固定。
\
转义字符,符号.是匹配任何一个单一的字符意思,如果我们想要匹配文本中的dog.
例如:
regex > dog\.
检索结果 > dog.        #符号\的意思即把具有特殊含义的符号意思取消,让其从一个有身份的变为平民(天黑请闭眼,狼人请睁眼...)
regex > \\_/
检索结果 > \_/        #符号\也具有特殊的身份,所以要匹配到\,则需要将其转义(转义就是平民化)
\w
符号\w可以匹配所有的字母和字符,以及下划线_
例如:
regex > \w\w\w\.
检索结果 > tom. dog. zZZ. ven.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值