前言

   勤奋的含义是今天的热血,而不是明天的决心,后天的保证。

一、正则表达式是什么?

  • 描述了一种字符串匹配的模式(pattern)
  • 功能一:用来检查一个字符串串是否含有某种子字符串
  • 功能二:将匹配的子串(满足规则的字符串)进行替换
  • 功能三:从某个字符串中取出符合某个条件的子
  • ......

二、re模块简介

  • re模块是python独有的匹配字符串的模块
  • 该模块中的很多功能是基于正则表达式实现的
  • Python自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式

三、正则表达式基础语法

   需要使用re模块,必须对正则表达式有一定的掌握,以下先介绍正则的一些基础知识。

3.1 正则表达式中的元字符

元字符 匹配内容说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\n 匹配一个换行符
\t 匹配一个制表符
\b 匹配一个单词的结尾
^ 匹配字符串的开始
$ 匹配字符串的结束
\W 匹配非字母或数字或下划线
\D 匹配非数字
\S 匹配非空白符
a|b 匹配字符a或字符b
() 匹配括号内的表达式,也表示一个组
[] 匹配字符组中的字符
[^] 匹配除了字符组中字符的所有字符

3.2 正则表达式中的量词

量词 用法说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

四、re模块代码基础及应用

4.1 re模块中的函数介绍

  • re.compile(pattern,flags = 0 ):用于编译正则表达式,生成一个正则表达式对象
  • re.search(pattern,string,flags = 0 ):扫描字符串以查找正则表达式模式产生匹配项的第一个位置 ,然后返回相应的match对象。
  • re.match(pattern,string,flags = 0 ):如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。
  • re.fullmatch(pattern,string,flags = 0 ):如果整个字符串与正则表达式模式匹配,则返回相应的match对象。
  • re.split(pattern,string,maxsplit = 0,flags = 0 ):通过出现模式来拆分字符串。
  • re.findall(pattern,string,flags = 0 ):以string列表形式返回string中pattern的所有非重叠匹配项。
  • re.finditer(pattern,string,flags = 0 ):返回一个迭代器,该迭代器在string类型的RE 模式的所有非重叠匹配中产生匹配对象。
  • re.sub(pattern,repl,string,count = 0,flags = 0 ):返回通过用替换repl替换字符串中最左边的不重叠模式所获得的字符串。

4.2 re模块 macth方法 基础写法一

import re

#group()方法得到匹配的字符串,如果字符串没有匹配,则返回None
value = re.match( 'class\d8' , 'class58' ).group()
print( value )

4.3 re模块 macth方法 基础写法二

import re

#创建正则表达式对象
str_c = re.compile('class\d8')
#group()方法得到匹配的字符串,如果字符串没有匹配,则返回None
value = str_c.match('class58').group()
print( value )

上述代码说明:上述两种写法都可以完成 re模块 的应用,4.2的例子是直接把正则表达式放入match的第一个参数中;4.3的例子是先创建正则表达式对象,由对象进行match方法的调用。

4.4 re模块 search方法 基础

import re

#创建正则表达式对象
str_c = re.compile('\d8') value = str_c.search('class58').group()
print( value )

上述代码说明:如果吧search()改为match()方法,则会报错,因为 match()仅在字符串的开头匹配,search()检查匹配项,在字符串中的任何位置检查匹配项

五、小结

  • 学习re模块需要先有正则表达式的知识做铺垫
  • 上述由于篇幅原因,关于其它的正则表达式的应用读者可以根据我的例子去进行扩展

python常识系列14-->正则表达式基础之re模块的更多相关文章

  1. python常识系列08-->logging模块基础入门

    前言 努力从今天开始,成功从"零"开始. 一.logging模块是什么? 是Python内置的标准模块,主要用于输出运行日志 二.日志是什么? 日志是代码的必要组成部分 记录日志能 ...

  2. PYTHON 爬虫笔记四:正则表达式基础用法

    知识点一:正则表达式详解及其基本使用方法 什么是正则表达式 正则表达式对子符串操作的一种逻辑公式,就是事先定义好的一些特定字符.及这些特定字符的组合,组成一个‘规则字符串’,这个‘规则字符串’用来表达 ...

  3. python常识系列20-->python利用xlutils修改表格内容

    前言 世上的事,只要肯用心去学,没有一件是太晚的.要始终保持敬畏之心,对阳光,对美,对痛楚. 一.xlutils是什么? 是一个提供了许多操作修改excel文件方法的库: 属于python的第三方模块 ...

  4. python常识系列07-->python利用xlwt写入excel文件

    前言 读书之法,在循序而渐进,熟读而精思.--朱熹 抽空又来写一篇,毕竟知识在于分享! 一.xlwt模块是什么 python第三方工具包,用于往excel中写入数据:(ps:只能创建新表格,不能修改表 ...

  5. 利用Python进行数据分析(14) pandas基础: 数据转换

    数据转换指的是对数据的过滤.清理以及其他的转换操作. 移除重复数据 DataFrame里经常会出现重复行,DataFrame提供一个duplicated()方法检测各行是否重复,另一个drop_dup ...

  6. Python正则表达式基础指南

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  7. 正则表达式基础---转自 Python正则表达式指南 前边

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  8. python正则表达式基础篇

    1.正则表达式基础 1.1简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大 ...

  9. python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别

    正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...

随机推荐

  1. The 2014 ACM-ICPC Asia Mudanjiang Regional First Round C

    题意:       这个是The 2014 ACM-ICPC Asia Mudanjiang Regional First Round 的C题,这个题目当时自己想的很复杂,想的是优先队列广搜,然后再在 ...

  2. UVA11388GCD LCM

    题意:       输入两个整数G,L,找出两个正整数a,b使得gcd(a ,b)=G,lcm(a ,b)=L,如果有多组解,输出最小的a的那组,如果没解,输出-1. 思路:       比较简单,如 ...

  3. 【实用小技巧】spring与springmvc自动扫描包重复的问题解决

    spring对应配置文件为: <!-- 配置自动扫描的包,此时要排除Controller --> <context:component-scan base-package=" ...

  4. Codeforces Beta Round #73(Div2)

    A - Chord 题意:就是环中有12个字符,给你三个字符,判断他们之间的间隔,如果第一个和第二个间隔是3并且第二个和第三个间隔是4,那么就输出minor,如果第一个和第二个间隔是4并且第二个和第三 ...

  5. 1.初级篇——最基础的"穷竭搜索”

    A.Lake Counting(POJ 2386) 题意: 由于最近的降雨,农夫约翰田地的各个地方都有水汇聚,用N x M(1 <= N <= 100; 1 <= M <= 1 ...

  6. 并查集板子+kruskal

    最近在学最小生成树得时候又用到了并查集,一起来整理一下 1.并查集 并查集就是字面意思,将两个单独得集合合并成一个大的集合. 并查集关键在于两个操作:合并和查找 先要完成查找操作(合并操作在查找的基础 ...

  7. 加载usbserial驱动后,为什么adb不可用了?

    ​某设备提供了USB串口功能,上位机(Host端)可以通过USB串口与之通信.对于Linux上位机,比如Ubuntu,自带usbserial驱动,当安装usbserial驱动后,上位机就会生成ttyU ...

  8. 如何用Python画一个圣诞树呢?

    # ./sd.py * *** ***** ******* ********* |[root@bogon shengdan]# vim sd.py[root@bogon shengdan]# cat ...

  9. 无法开机 如果您的手机黑屏无法开机,可以按照以下方式操作尝试: 如果是,使用原装充电器或使用弱电流方式充电(例如使用电脑USB接口充电)充电15-30分钟后尝试重新开机;注意:电量过低引起的无法开机,刚插入充电器时可能不亮屏但呼吸灯闪烁状态。

    https://www.mi.com/service/support/startup 无法开机 如果您的手机黑屏无法开机,可以按照以下方式操作尝试: 技术支持 如何刷机 无法开机 手机自动关机.重启 ...

  10. 【转载】ltp压力测试结果分析脚本

    博客园 首页 新随笔 联系 管理 订阅 随笔- 8  文章- 0  评论- 0  ltp压力测试结果分析脚本   最近工作性质发生了改变,在做操作系统方面的测试.接手的第一个任务是做ltp stres ...