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. 关于idea的debug

    idea的debug真的是超级好用哎.分享几个今天学会的新方式: 1.右键会发现此选项 ,点击出现 在输入框中输入,可以通过某些公式单独计算. 2.点击属性值,右键点击set values 会出现一个 ...

  2. OperateResult 基础类及派生类介绍

    前言 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装: Install-Package HslCommunication NuGet安 ...

  3. SQL注入之Sqli-labs系列第三十二关(基于宽字符逃逸注入)

    开始挑战第三十二关(Bypass addslashes) 0x1查看源代码 (1)代码关键点 很明显,代码中利用正则匹配将 [ /,'," ]这些三个符号都过滤掉了 function che ...

  4. [LeetCode&Python] Problem 202. Happy Number

    Write an algorithm to determine if a number is "happy". A happy number is a number defined ...

  5. 渲染标签 - v-text

    <!DOCTYPE html><html><head>    <meta charset="utf-8">    <title ...

  6. Windows10下搭建Android Studio3.12开发环境

    1.准备工作: 操作系统:Windows10 专业版或企业版 JDK安装:参考文章 http://www.cnblogs.com/yuwentao/p/4742575.html =========== ...

  7. SpringAOP 注解方式

    Spring-service-mvc.xml <context:component-scan base-package="com.restful.controller,com.rest ...

  8. redis的内存优化【转】

    Redis所有的数据都在内存中,而内存又是非常宝贵的资源.对于如何优化内存使用一直是Redis用户非常关注的问题.本文让我们深入到Redis细节中,学习内存优化的技巧.分为如下几个部分: 一.redi ...

  9. 前端 --- 5 BOM 和 DOM

    一.BOM BOM(Browser Object Model)是指浏览器对象模型, 它使 JavaScript 有能力与浏览器进行“对话”. 1. window 对象 一些常用的Window方法: ( ...

  10. [zz]蟑螂蚂蚁蚊子已不住在我家了!这个方法100%见效…

    http://mt.sohu.com/20150324/n410238511.shtml 蚂蚁怕酸,蚊子怕辣,蟑螂怕香.在下给各位提供一个不杀生又能驱赶蚂蚁.蚊子.蟑螂的妙法. 一.蚂蚁怕酸味 家里的 ...