正则表达式与Python中re模块的使用

Posted 江湖乄夜雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式与Python中re模块的使用相关的知识,希望对你有一定的参考价值。

正则表达式与Python中re模块的使用

最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块
另外,给大家介绍一个在线测试正则表达式的神器网站http://tool.chinaz.com/regex
大家可以去这里练习正则表达式
下面总结一下正则表达式re模块的基础与使用。

正则表达式

使用场景

关于正则表达式的基本概念这里就不赘述了,大家可以去各种百科里查找它的定义。正则的使用场景主要分为两个:
一是:检测某一段字符串是否符合规则,也就是我们常说的"校验"
二是:从一大段字符串中找到符合规则的字符串,可以理解为"检索"
对于第一种使用场景,我们在登陆或者注册时填写邮箱、手机号等内容的时候经常会见到——底层的实现思路就是利用正则“校验”我们输入的内容是否“规范”。
另外,正则的“检索”功能大量使用在爬虫里,简单的说,爬虫能从一个网站大量的数据中得到用户想要的内容等等......

需要特别注意,正则表达式只是用来处理字符串的

元字符

一:可以灵活使用的元字符:[] 与 [^]
(1)数字  [0-9]
(2)小写字母  [a-z]
(3)大写字母  [A-Z]
(4)大小写字母  [A-Za-z]
(5)大小写字母+数字  [0-9A-Za-z]
(6)注意一个字符组不限制个数:匹配三个的话:[0-9A-Za-z][0-9A-Za-z][0-9A-Za-z]
(7)大小写字母+ _与%   [A-Za-z_%]
(8-1)匹配1-5   [1-5]  用转义符,- 有特殊含义
(8-2)字符组中 - 是有特殊意义的,需要使用作为转义符!
(9)[^123]——除了123都匹配,包括换行
二:匹配字符
(1)d——所有数字
(2)w——字母数字下划线
(3)s——空白
(4)空格匹配空格
(5)	——制表符
(6)
——换行符
(7)——单词的边界   o——hello的'o'(o是单词的最后一个)    o——ok的'o'(o是单词的第一个)
(8)W——除了字母数字下划线
(9)D——除了数字
(10)S——除了空白符
(11).——匹配除了换行符所有的
(12)[Dd]、[Ww]、[sS]——匹配所有的
(13)[^123]——除了123都匹配,包括换行
(14)^——开始字符
(15)$——结束字符
(16)^.....$——开始+结尾,中间是5个除了换行的符号
(17)|——或   长的放在前面!
(18)()——分组   www.(baidu|oldboy).com  匹配www.baidu.com或者www.oldboy.com

量词

量词用来限制匹配的次数
(1){n}——匹配n次
(2){n,}——匹配至少n次
(3){n,m}——匹配n到m次
(4)+——一次或者多次  匹配小数点的前后必须有数      d+.d+
(5)*——0次或者多次    匹配整数:第一位是1-9不要是0:     [1-9]d*|0
(6)?——0次或者一次    匹配一个整数或者小数: d+(.d+)?

贪婪匹配与惰性匹配

在正则中,默认的匹配模式是“贪婪匹配”,也就是说,在符合匹配规则的前提下尽可能多的去匹配字符,但是有些时候,我们不需要匹配太多的内容,只要得到需要的“片段”内容就好了。
量词是匹配多次的,这时我们可以在量词的后面加上?就可以让匹配“适可而止”了,这样的匹配规则就是惰性匹配

以上是关于正则表达式与Python中re模块的使用的主要内容,如果未能解决你的问题,请参考以下文章

python 正则表达式 re模块基础

python中的re模块

Python 正则表达式详解与 re 模块的使用

常用模块-正则re

re模块与正则表达式

7.17正则表达式与re模块