python之路之正则表达式
匹配格式
^ 匹配字符串的开头
$ 匹配字符串的结尾
. 除了换行符外的所有字符
[...] 用来表示一组字符,,单独列出:[amk]匹配'a','m'或'k'
[^..] 不在[]中的字符:[^abc]匹配除了a,b,c之外的字符
* 匹配0个或多个
+ 匹配1个或多个
? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
{n,} 精确匹配n个前面的表达式
{n,m} 匹配n到m次由前面的正则表达式定义的片段,贪婪方式
a|b 匹配a或b
() 匹配括号内的表达式,也表示一个组
\w 匹配字母数字
\W 匹配非字母数字
\s 匹配任意空白符
\S 匹配任意非空白符
\d 匹配任意数字
\D 匹配任意非数字
\A 匹配字符串开始
\Z 匹配字符串结束,如果存在换行,只匹配换行前的结束字符串
\z 匹配字符串结束
\G 匹配最后匹配完成的位置
\b 匹配一个单词的边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B 匹配非单词边界,'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'
\n 匹配一个换行符
\t 匹配一个制表符
\1..\9 匹配第n个分组的子表达式 正则表达式常用5种操作:
re.match(pattern,string) #从字符串的开头开始匹配,匹配必须与字符串的开头一致,返回一个匹配值
re.search(pattern,string) #从字符串的任意位置匹配,返回一个匹配值
re.split() #按匹配分隔字符串,默认为空格
re.findall(pattern,string) #找到所有的匹配,返回列表
re.sub(pattern,repl,string,count) #找到所有匹配,并替换掉 一:match的使用方法:从字符串的开头开始匹配

贪婪匹配:.* 使自己尽量获取最多的值
与非贪婪匹配:.*? 使大家都可以获取最多的值

匹配模式:
S可以使.匹配新行,即使.可以匹配任意字符
import re content = """Hello 1234567 World_This
is a Regex Demo"""
result = re.match("^He.*?(\d+).*?Demo$",content,re.S) print(result.group())
print(result.group()) 结果:
vHello World_This
is a Regex Demo
match的缺点:从字符串的开头匹配,开头必须一致

二、search:在字符串的任意位置查找,返回一个匹配值
import re content = """Extra strings Hello 1234567 World_This is a Regex Demo Exit"""
result = re.search("He.*?(\d+).*?Demo",content) print(result.group())
print(result.group()) 结果:
Hello World_This is a Regex Demo
三、sub:查找并替换

其它链接:http://blog.csdn.net/whycadi/article/details/2011046
https://www.cnblogs.com/whaozl/p/5462865.html
python之路之正则表达式的更多相关文章
- Python之路-(js正则表达式、前端页面的模板套用、Django基础)
js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- python之路(十)-正则表达式
re模块用于对python的正则表达式的操作. 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配 ...
- python之路,正则表达式
python3 正则表达式 前言: (1). 处理文本称为计算机主要工作之一(2)根据文本内容进行固定搜索是文本处理的常见工作(3)为了快速方便的处理上述问题,正则表达式技术诞生,逐渐发展为一个单独技 ...
- Python之路第六天,基础(7)-正则表达式(re)
Python RE模块(正则表达式) 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成 ...
- 【python之路39】Python 正则表达式
Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. r ...
- python之路 目录
目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
随机推荐
- PHP 上传图片和安全处理
上传图片 public function images() { $data = $_FILES['file']; switch($data['type']) { case 'image/jpeg': ...
- 数据库 SQL优化
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- 第二个sprint第六天
讨论地点:qq 讨论成员:邵家文.李新.朱浩龙.陈俊金 今天完成:统计功能前期工作已经完成,暂时对它进行搁置. 开发感悟:今天回了乡下吃了一顿饭,发现还是乡下环境好,比较适合在那种环境下 ...
- 【题解】【字符串】【BFS】【Leetcode】Word Ladder
Given two words (start and end), and a dictionary, find the length of shortest transformation sequen ...
- 设计模式 : Template method 模板方法模式 -- 行为型
设计模式中,模板模式面向的是方法级别的流程.(不过好像世界上大部分问题,都可以抽象点.抽象点吧,最后抽象到一个方法里面吧.) 1. 一个方法,可以用来描述一个流程,这个流程涉及多个环节,不同环节可 ...
- hdu 5206 Four Inages Strategy
题目大意: 判断空间上4个点是否形成一个正方形 分析: 标称思想 : 在p2,p3,p4中枚举两个点作为p1的邻点,不妨设为pi,pj,然后判断p1pi与p1pj是否相等.互相垂直,然后由向量法,最后 ...
- 希尔排序(C++版)
#include <iostream> using namespace std; /** Shell Sort * * Key: * * increment * * insertSort( ...
- TFTP网络协议分析---15
TFTP网络协议分析 周学伟 文档说明:所有函数都依托与两个出口,发送和接收. 1:作为发送时,要完成基于TFTP协议下的文件传输,但前提是知道木的PC机的MAC地址,因为当发送TFTP请求包时必须提 ...
- c#部分---用函数的四种格式做一元二次方程
格式一:(无参无返) public void fangcheng() { Console.WriteLine("请输入a的值"); double a = int.Parse(Con ...
- leetcode 104 Maximum Depth of Binary Tree ----- java
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...