爬虫(五十八)正则表达式(四十九)

啊,终于把一些基本的库都讲完了,可以看看之前的文章,接下来开始讲正则表达式

正则表达式(regular expression)是一种工具,一种广泛用于匹配字符串的工具。它用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+”描述的特征是“一个'a'和任意个'b'”,那么'ab','abb','abbbbbbbbbb'都符合这个特征。

很多人觉得学习正则表达式太难,那是因为还没有理解正则的功用及其使用场景,没有牢固的背下它的基本语法和元字符。

考虑下面的几个场景:

  • 你要搜索一个文件,这个文件里包含了单词‘cat’(不区分字母大小写),但你并不想把包含着字符串‘cat’的其他单词(比如catch、cattle等)也找出来。

  • 你的WEB服务器接收从表单发送过来的用户邮箱地址信息。你需要检查电子邮件地址是否符合正确的语法格式。

  • 你正在编辑一段源代码并且要把所有的‘size’都替换为‘isize’,但这种替换仅仅限于‘size’单词本身,而不涉及那些包含着字符串‘size’的其他单词。

  • 你需要在文件里搜索某个特定的文本,但你只想把出现在特定位置的,比如每行的开头或是结尾的找出来。

以上场景都是我们在程序编写过程中经常会遇到的问题,用任何一种支持条件处理和字符串操作的编程语言都可以解决它们,但是解决过程可能比较复杂。例如,用一些循环来依次遍历那些单词或字符,并在循环体内用一系列的if语句来进行测试,但是这样的效率非常低下。或者,使用编程语言内置的字符串方法,比如Python语言中字符串的find方法,虽然也是可行,但功能较弱,很多场景无能为力。

这种情况下,使用正则是很好的选择,上述问题都可以通过精心构造一些匹配表达式,或者说一些由文本和特殊字符构成的高度简练的字符串来解决。

在正式学习正则之前,你要牢记下面几个事项:

  • 正则表达式本质上是一门语言,它不从属与Python!Python只是将他人写好的正则引擎集成到了语言内部,大多数编程语言都是这么干的!

  • 正则表达式诞生的时间很长,应用非常广泛,是业界公认的字符串匹配工具。虽然有不同版本的内部引擎,但基本通用,也就是说,你在Python内写的正则表达式,可以移植到Linux的shell,Java语言等任何支持正则的场景中去。

  • 正则表达式默认从左往右匹配。

  • 正则表达式默认是贪婪模式。

  • 正则表达式默认在匹配到了内容后,则终止匹配,不继续匹配。

  • 对同一个问题,编写的正则表达式不是唯一的!

请继续关注我

记得点赞加关注哦,记得加鸡腿啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
博客
v8worker
05-08 2883
05-06 2861
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值