首页
学习
活动
专区
工具
TVP
发布

Python基础知识之二:正则表达式常用功能细解!

其实正则在我的爬虫中已经用的不是很多了,用xpath的网页标签去找内容,容易理解也方便多了,但是不用正则不是因为有更好的方法,而是正则用的好用的精通很难,比如各种符号对应的方法等等,今天就把经常用的一些正则简单说说,除了一些特殊的,基本就够用了。

正则介绍

正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。

以上是复制网上一段,简单的说,就是它在各种语言中都存在,有自己的语法,功能非常强大,等等。

正则模块在python里面需要安装一下,cmd下输入命令:pip install re即可。使用时 import re

欢迎大家来和我一起讨论、交流的哦!

干货:findall的几种常用方法

这段代码意思是,在a变量中查找所有ui,以列表形式赋值给b。应用于计算字符出现次数。

加了个符号^表示判断如果是ss开头则返回ss,否则返回空列表

当然也有判断结尾字符的,用$标识

[]内字符分别和后面字符组合匹配,返回所有的匹配内容

这里用.代替任意字符,即可匹配字符串内v和前面的1个字符

‘d’用来匹配0-9内的1个数字返回,用’\’转义,注意是返回一个数字,比如上方的12,返回的是’1’,’2’

当然解决办法也有,用2个’\d’即可了,想匹配几位就用几个

‘d’是匹配数字,’D’表示除了数字都匹配,包括符号

‘w’在正则里面代表匹配从小写a到z,大写A到Z,数字0到9包含前面这三种情况,如上图

‘W’大写的话,就正好相反,匹配数字、字母之外的内容

以上2种情况都是匹配1个字符,如果要多个有2种方式,如下:

这是3个字符的

这是多个字符直到不在符合为止

以下是今天的重点了,也是我最经常用的匹配方式,划重点!

这里括号()的用法表示匹配是取括号内里面的内容,这里.*是正则贪婪匹配语法,也就是尽可能多的匹配

加个?就变成非贪婪匹配,也就是最小范围匹配了

这里,在最后加个re.I(i的大写),即忽略大小写

还一种情况是存在换行符(\n)的情况,加上re.S(大写s),即可匹配忽略换行符,也就是多行匹配了!

以上几种情况(特别是最后4种)掌握了,那基本可以搞定70%或者以上的情况,其他的方式还有很多(我都不怎么常用),就不一一举例了,大家有兴趣可以自行学习哦!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180316A1U96Y00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券