python re模块
re模块主要用于查找、替换、分割
print(re.__doc__)
特殊字符(元字符):
"." 任意一个字符,除换行符(\n)
"^" 字符串开头
"$" 字符串结尾
"*" >=0个字符,贪婪匹配
"+" >=1个字符,贪婪匹配
"?" 0或1个字符,贪婪匹配
{m, n} 重复m至n次个字符,贪婪匹配
*?, +?, ??, {m, n}? 非贪婪,尽量少
[] 一个字符
"|" 或
() group使用,分割使用时,全部作为列表元素
(?P<name>) 字符匹配别名
特殊序列:
\A 字符串开始
\Z 字符串结尾
\b 开始或结尾位置的空字符串
\B 非\b
\d [0-9]
\D [^0-9]
\s 空白字符 [\t\n\r\f\v]
\S 非\s [^\s]
\w [a-zA-Z0-9_] 数字、字母
\W 非数字、字母
\\ \
可选函数参数:
re.I 忽略大小写
注:分割不忽略大小写
re.M 多行匹配
注:改变^$方式为:每行都判定
函数:
(1)查找(找到一个就完成)
match(patttern, string)
从字符串开始位置匹配,无返回None
search(pattern, string)
整个字符串范围内匹配,无返回None
(2)匹配条件
compile(pattern)
(3)分割
split(pattern, string)
匹配分割,返回列表
(4)全部查找
findall(pattern, string)
查找所有匹配子串,返回列表
finditer(pattern, string)
查找所有匹配子串,组成一个迭代器
(5)替换
sub(pattern, repl, string)
在字符串string中,查找匹配正则表达式pattern的所有子串,用另一个字符串repl进行替换
subn(pattern, repl, string)
同sub,返回二维元组
运用方式:
r1 = re.compile("[.*]")
re.findall(r1, "abc")
r1 = re.compile(r"world")
if r1.match("helloworld"):
print("Ok")
re.split("(\w+)", "192.168.1.1")
python re模块的更多相关文章
- Python标准模块--threading
1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...
- Python的模块引用和查找路径
模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...
- Python Logging模块的简单使用
前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- python基础-模块
一.模块介绍 ...
- python 安装模块
python安装模块的方法很多,在此仅介绍一种,不需要安装其他附带的pip等,python安装完之后,配置环境变量,我由于中英文分号原因,环境变量始终没能配置成功汗. 1:下载模块的压缩文件解压到任意 ...
- python Queue模块
先看一个很简单的例子 #coding:utf8 import Queue #queue是队列的意思 q=Queue.Queue(maxsize=10) #创建一个queue对象 for i in ra ...
- python logging模块可能会令人困惑的地方
python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调 ...
- Python引用模块和查找模块路径
模块间相互独立相互引用是任何一种编程语言的基础能力.对于"模块"这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译 ...
- Python Paramiko模块与MySQL数据库操作
Paramiko模块批量管理:通过调用ssh协议进行远程机器的批量命令执行. 要使用paramiko模块那就必须先安装这个第三方模块,仅需要在本地上安装相应的软件(python以及PyCrypto), ...
随机推荐
- gitlab
这里解决gitlab文件上传大小限制 http://blog.csdn.net/fdipzone/article/details/45544497 通过浏览器debug知道是nginx服务解释器 进入 ...
- lua拾遗之lua中冒号(:)与点号(.)的区别和来由
参考资料 1.https://my.oschina.net/lonewolf/blog/173065 其结论为: 1.定义的时候:Class:test()与 Class.test(self)是等价的, ...
- .NET client connection Limit
调试出了一个诡异的问题,使用多个进程没问题,单进程出现了. fix: //默认限制为2个连接 //public const int DefaultPersistentConnectionLimit = ...
- spring Date JPA的主要编程接口
Repository:最顶层的接口,是一个空接口,主要目的是为了同一所有Repository的类型,并且让组件扫描的时候自动识别. CrudRepository:是Repository的子接口,提供增 ...
- Linux启用和配置Java
Firefox 在安装 Java 平台时,Java 插件文件将作为该安装的一部分包含在内.要在 Firefox 中使用 Java,您需要从该发行版中的插件文件手动创建符号链接指向 Firefox 预期 ...
- Visual Studio配色方案
Eclipse开源工具和VS在诸多方面真的是差距非常大,无奈Java编程,使用VS非常麻烦.所以只能选择Eclipse 但是Eclipse的系统配色,又实在是不舒服,于是抽时间,从VS上抠了一份默认的 ...
- Azure VM上传小文件
因为需要传一些脚本到Azure的VM里,有个简单方法可以实现,如下 编辑这个rdp文件 点击确定,连接远程计算机 可以在我的电脑里看到本地硬盘
- [转] 经典SQL练习题
原题目来自qaz13177_58_CSDN博客 http://blog.csdn.net/qaz13177_58_/article/details/5575711/#sql 只是更新个人答案供参考 表 ...
- 详解学习C#的方法和步骤
如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET. 强烈反对在没系统学过一门面向对象语言的前提下去学ASP.NET. ASP.NET是一个 ...
- C#抽象方法和虚拟方法理解
http://www.cnblogs.com/denylau/archive/2010/04/11/1709573.html http://www.cnblogs.com/naariah/archiv ...