码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-03-22 18:34:10      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:测试   检测   概念   限制   个数   www.   空格   注册   结束   

正则表达式与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)\t——制表符
(6)\n——换行符
(7)\b——单词的边界   o\b——hello的'o'(o是单词的最后一个)    \bo——ok的'o'(o是单词的第一个)
(8)\W——除了字母数字下划线
(9)\D——除了数字
(10)\S——除了空白符
(11).——匹配除了换行符所有的
(12)[\D\d]、[\W\w]、[\s\S]——匹配所有的
(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模块的使用

标签:测试   检测   概念   限制   个数   www.   空格   注册   结束   

原文地址:https://www.cnblogs.com/paulwhw/p/10579914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!