re模块:正则表达式

正则表达式:为匹配字符

import re   #导入re模块
#re.findall('正则表达式','被匹配字符') re模块下findall用法
在正则表达式中:
\w 表示匹配一个字母、数字、下划线
\W 匹配一个非字母、数字、下划线(小写w的取反)
\s \小写s匹配任意空白字符
\S 大写匹配任意非空白字符
\d 匹配任意数字字符
\D 匹配任意非数字字符
\n 只匹配换行符
\t 只匹配制表符
^或者\A 仅从开头匹配,若开头未匹配成功,则结束
$ 仅从尾部开始匹配
. 代表一个字符,任意字符,该字符是除换行符之外任意字符 re.DOTALL可以让. 匹配换行符
[] 匹配一个字符,该字符是我们自定义范围,[0-9]表示数字0-9中一个,[a-zA-Z]表示所有小写大写字母中一个,[=\-*/]表示加减乘除符号中任意一个\-表示转译的意思。
[^0-9] 同样表示取反的意思,非0-9
#重复匹配
? 匹配?左边那一个字符出现0或者1次,也就是左边字符有或者无都行
print(re.findall('ab?','a aba abb ab a ab'))
#匹配的结果是['a','ab','a','ab','ab','a','ab']
* 匹配*左边那个字符0到无穷次,只要*左边字符出现就取走
+ 匹配+左边一个字符出现1到无穷次
{n,m} 匹配左边字符出现n到m次,{n}指定n次数
.* 匹配任意0个到无穷个字符,贪婪匹配,匹配到最远的结束字符
.*? 匹配任意0个到无穷个字符,非贪婪匹配,匹配至最近的结束字符
| 或者,连接两个正则表达式 ('company|companies')
() 分组,普通分组compan(y|ies)匹配只保留括号内的内容,
但compan(?y|ies)则取消只保留括号内的内容,会匹配全部的内容
re.I 忽略大小写
re.M 以\n为分隔符,多行匹配
如果字符中有\ 'a\c aaa' 那在python语法中可写成
re.findall('a\\\\c','a\c aaa')
或者 re.findall(r'a\\c', 'a\c aaa')
​
re模块的其他用法
#re.search() 只要匹配一次成功就结束,该方法下有group用法
re.search() 有返回值
res = re.search()
res.group(0) 0表示全部, 1表示第一分组 2表示第二分组
​
#re.match()
re.match('abc') 等价于re.search('^abc')
表示只从该字符首开始
obj=re.compile('\d{2}')
​
print(obj.search('abc123eeee').group()) #
print(obj.findall('abc123eeee')) #['12'],重用了obj

python中的re模块——正则表达式的更多相关文章

  1. Python中的re模块--正则表达式

    Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...

  2. 常用正则表达式与python中的re模块

    正则表达式是一种通用的字符串匹配技术,不会因为编程语言不一样而发生变化. 部分常用正则表达式规则介绍: . 匹配任意的一个字符串,除了\n * 匹配任意字符串0次或者任意次 \w 匹配字母.数字.下划 ...

  3. Python中的random模块,来自于Capricorn的实验室

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  4. Python中的logging模块

    http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...

  5. Python中的random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  6. 浅析Python中的struct模块

    最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...

  7. python中的StringIO模块

    python中的StringIO模块 标签:python StringIO 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分 ...

  8. python中的select模块

    介绍: Python中的select模块专注于I/O多路复用,提供了select  poll  epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqu ...

  9. python中的shutil模块

    目录 python中的shutil模块 目录和文件操作 归档操作 python中的shutil模块 shutil模块对文件和文件集合提供了许多高级操作,特别是提供了支持文件复制和删除的函数. 目录和文 ...

随机推荐

  1. 剑指Offer 1. 二维数组中的查找 (数组)

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  2. L2-016. 愿天下有情人都是失散多年的兄妹(深搜)*

    L2-016. 愿天下有情人都是失散多年的兄妹 参考博客 #include<iostream> #include<cstdio> #include<cstring> ...

  3. 深入理解Java中的同步静态方法和synchronized(class)代码块的类锁

    一.回顾学习内容 在前面几篇博客中我我们已经理解了synchronized对象锁.对象锁的重入.synchronized方法块.synchronized非本对象的代码块, 链接:https://www ...

  4. 转发 C# Win32 API程序控制鼠标的操作

    命名空间:using System.Runtime.InteropServices; 在程序中添加: [DllImport("User32")]public extern stat ...

  5. 转 C#实现PID控制的模拟测试和曲线绘图

    C#实现PID控制的模拟测试和曲线绘图   本文分两部分,一部分是讲PID算法的实现,另一部分是讲如何用动态的曲线绘制出PID运算的结果. 首先,PID算法的理论模型请参考自动控制理论,最早出现的是模 ...

  6. SQL-记录删除篇-007

    删除记录: delete * from table_name 解释:删除表中的所有数据 delete * from table_name where id<10 解释:删除表中id小于10的数据 ...

  7. [ Codeforces Round #549 (Div. 2)][D. The Beatles][exgcd]

    https://codeforces.com/contest/1143/problem/D D. The Beatles time limit per test 1 second memory lim ...

  8. CMake for MFC example

    cmake_minimum_required(VERSION 2.8) add_definitions(-D_AFXDLL) set(CMAKE_MFC_FLAG 2) set(SRCS MFCApp ...

  9. lua luv分析

    地址 https://github.com/richardhundt/luv

  10. python3 访问百度返回压缩格式

    import urllib, urllib.request, urllib.parse import random import zlib import re import os, time Save ...