```
# -*- coding:utf-8 -*-
import re

re - Support for regular expressions (RE).
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象,该对象拥有一系列方法用于正则表达式匹配和替换。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
```
```
match 正则表达式模式与字符串的开头匹配.
fullmatch 正则表达式模式与所有字符串匹配
search 在字符串中搜索模式的存在
sub 替换在字符串中找到的模式匹配.
subn 与sub相同,但也返回所做的替换次数
split 按照模式的出现位置分割字符串后返回列表
findall 以列表的形式返回能全部匹配到的子串
finditer 返回一个迭代器,为每个匹配产生一个Match对象
compile 将模式编译为Pattern对象
purge 清除正则表达式缓存
escape 反斜杠字符串中的所有非字母数字
```
```
'1. 匹配任意单个字符, 换行符\n除外'
pattern01 = re.compile(pattern=r'.', flags=0)
ma01 = re.match(pattern=pattern01,string='hello china!')

'2. 匹配任意单个字符, 包括换行符\n'
pattern02 = re.compile(r'.',flags=re.S)
ma02 = re.match(pattern=pattern02, string='\nhello china!', flags=0)

'3. 匹配指定的字符串 '
pattern03 = re.compile(pattern=r'hello')
ma03 = re.match(pattern=pattern03,string='hello world!')

'4. 匹配任意单个小写字母 '
pattern04 = re.compile(r'[a-z]')
ma04 = re.match(pattern=pattern04,string='hello world!')

'5. 匹配任意单个字母 '
pattern05 = re.compile(r'[a-zA-Z]')
ma05 = re.match(pattern=pattern05,string='Hello World!')

'6. 匹配任意单个数字'
pattern06 = re.compile(r'[0-9]') or re.compile(r'\d')
ma06 = re.match(pattern06,'2018-10-10')

'7. 匹配任意单个字母数字 '
pattern07 = re.compile(r'\w' or r'[a-zA-Z0-9]')
ma07 = re.match(pattern07,'hello world')

'8. 匹配任意单个非字母数字'
pattern08 = re.compile(r'\W') or re.compile(r'[^\w]')
ma08 = re.match(pattern08,'<hello world>')

'9. 匹配任意单个非数字'
pattern09 = re.compile(r'\D' or r'[^\d]')
ma09 = re.match(pattern09, 'hello world!')

'10. 匹配任意单个空白字符\t \r \n \f \v 空格'
pattern10 =re.compile(r'\s')
ma10=re.match(pattern10, '\n hello world!')

'11. 匹配任意单个非空白字符'
pattern11 = re.compile(r'\S')
ma11 = re.match(pattern11, 'hello china!')

'12. 匹配特殊字符 . * + ? 等,使用转义符号/ \ '
pattern12 =re.compile(r'\+')
ma12 = re.match(pattern12, '+*-?hello china!')

'13. 匹配任意字符0次或无限次'
pattern13 = re.compile(r'.*',flags=re.S)
ma13 = re.match(pattern13, 'hello china!')

'14. 匹配任意字母1次或无限次'
pattern14 = re.compile(r'[a-zA-Z]+')
ma14 = re.match(pattern14,'hello world!')

'15. 匹配任意数字0次或1次'
pattern15 = re.compile(r'\d?')
ma15 = re.match(pattern15,'hello china')

'16. 匹配前一个字符m次'
pattern16 = re.compile(r'[a-z]{2}')
ma16 = re.match(pattern16,'hello china')

'17. 匹配前一个字符m-n次'
pattern17 =re.compile(r'[a-z]{2,4}')
ma17 =re.match(pattern17,'hello china')

'18. 非贪婪模式匹配, 尽可能的少匹配或不匹配 *? +? ?? {m,n}?'
pattern18 = re.compile(r'\w+?')
ma18 =re.match(pattern18,'hello wolrd')

'19. 匹配模式分组, 使用编号引用'
pattern19 =re.compile(r'<(\w+>)\w+</\1')
ma19 = re.match(pattern19,'<book>python3</book>')

'20.匹配模式分组,并其别名, 用别名引用'
pattern20 = re.compile(r'<(?P<name>\w+>)\w+</(?P=name)')
ma20 = re.match(pattern20,'<book>python3</book>')

'21. 匹配字符串的开头'
pattern21 = re.compile(r'^[a-zA-z_].*')
ma21 = re.match(pattern21,'sutdent1 = 12')

'22. 匹配字符串的结尾'
pattern22 = re.compile(r'\.com$')
ma22 = re.search(pattern22,'www.test2018.com')

'23. 仅仅匹配字符串开头 \A'
'24. 仅仅匹配字符串结尾 \Z'
```
```
're.I 使匹配对大小写不敏感'
're.L 做本地化识别(locale-aware)匹配'
're.M 多行匹配,影响 ^ 和 $'
're.S 使 . 匹配包括换行在内的所有字符'
're.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.'
're.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解'
```

Python正则表达的更多相关文章

  1. python 正则表达提取方法 (提取不来的信息print不出来 加个输出type 再print信息即可)

    1,正则表达提取 (findall函数提取) import re a= "<div class='content'>你大爷</div>"x=re.finda ...

  2. Python 正则表达试

    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦, ...

  3. Python 正则表达模块详解

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  4. Python正则表达计算器

    Python学习笔记(十二): 计算器 利用Python的正则表达式写的简易计算器 # author : Ryoma # time : 17:39 import re def add(string): ...

  5. PYTHON 正则表达示入门

    确实是实践出真知,自己手打代码之后,以前停在理论上的东东,慢慢可以进入实战了. 比如,MATCH和SEARCH之间的区别. #encoding: UTF-8 import re pattern = r ...

  6. python正则表达提取文本好文

    摘自: http://www.cnblogs.com/rj81/p/5933838.html

  7. Python之面向对象和正则表达(代数运算和自动更正)

    面向对象 一.概念解释 面对对象编程(OOP:object oriented programming):是一种程序设计范型,同时也是一种程序开发的方法,实现OOP的程序希望能够在程序中包含各种独立而又 ...

  8. python——re模块(正则表达)

    python——re模块(正则表达) 两个比较不错的正则帖子: http://blog.csdn.net/riba2534/article/details/54288552 http://blog.c ...

  9. 正则表达示 for Python3

    前情提要 从大量的文字内容中找到自己想要的东西,正则似乎是最好的方法.也是写爬虫不可缺少的技能.所以,别墨迹了赶紧好好学吧! 教程来自http://www.runoob.com/python3/pyt ...

随机推荐

  1. session的获取

    Springmvc: RequestAttributes ra = RequestContextHolder.getRequestAttributes(); HttpServletRequest re ...

  2. shell和python之间的参数传递

        我们在使用shell调用其他语言的程序的时候,希望能够便捷的从shell中输入参数,然后由目标程序接收参数并运行,这样就省去了每次需要在原程序进行修改带来的麻烦,这里介绍一下如何从shell中 ...

  3. 【bzoj4817】树点涂色 LCT+线段树+dfs序

    Description Bob有一棵n个点的有根树,其中1号点是根节点.Bob在每个点上涂了颜色,并且每个点上的颜色不同.定义一条路 径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色. ...

  4. 图层锁定vlisp函数高版本图元自动淡色显示

    (defun c:tt(/ obj) (sk_layerLock (getvar "clayer") nil) (princ) ) ;;;name:sk_layerLock ;;; ...

  5. HDU6300-2018ACM暑假多校联合训练1003-Triangle Partition

    题意是给3n个点,其中不可能存在任意三点共线的情况,让你在其中建n个三角形,点不能重复使用,三角形不能相互覆盖 做法是给每个点排序,按照先y轴排,再x轴排的顺序,三个三个一组从下往上输出,有人说是凸包 ...

  6. DOM操作技术之动态脚本与动态样式(兼容版)

    动态脚本 使用<script>元素可以向页面中插入Javascript代码,一种方式是通过其src特性包含外部文件,另一种方式就是用这个元素本身来包含代码. 而我们要说的动态脚本,指的是在 ...

  7. HttpClient 基于连接池的使用

    场景:调用外部系统接口的http请求 要求: 1:可能是http请求,也可能是https请求 2:需要加入连接池的概念,不能每次发起请求都新建一个连接(每次连接握手三次,效率太低) 准备使用httpc ...

  8. bdd相关整理介绍

    BDD介绍 什么是BDD Behavior-driven development In software engineering, behavior-driven development (BDD) ...

  9. 航天独角兽Spacex

    2018年2月7日下午3时45分,猎鹰重型火箭在位于卡纳维拉尔角的肯尼迪航天中心LC-39A平台顺利升空.火箭直升云霄,按照既定轨道持续升空,位于美国弗罗里达州卡纳维拉尔角的航天发射中心硝烟四起,非常 ...

  10. docker load error: open /var/lib/docker/tmp/docker-import-347673752/bin/json: no such file or directory

    docker save 对应 docker load docker export 对应 docker import 在导出的包的环境中的docker版本跟需要导入的环境中的docker版本不一致也可能 ...