```
# -*- 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. Kotlin 函数

    至于什么函数,在计算机里面就是一个密闭的执行程序的代码块(个人理解) 我们先来看看什么是函数 fun main(agrs : Array<String>) { println(" ...

  2. 为什么不应该重写service方法?

      故事通常是这样开始的: 从前,有一个程序猿,他语重心长地对孙子说:“孩子,要是你以后写servlet,最好不要重写service方法啊” 孙子大为不解,程序猿又说:“听爷爷的,准没错,爷爷的爷爷就 ...

  3. Nginx 进行性能配置

    总所周知,网络上我们购买的服务器的性能各不相同,如果采用 Nginx 的默认配置的话,无法将服务器的全部性能优势发挥出来,我们应该选择适合自己需求的配置. 当我们默认安装后 Nginx 后,我们便得到 ...

  4. 数据解析之xpath

    一.环境安装 下载lxml pip install lxml 二.使用 XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取 ...

  5. MySQL索引的索引长度问题

    转自:http://samyubw.blog.51cto.com/978243/223773 MySQL的每个单表中所创建的索引长度是有限制的,且对不同存储引擎下的表有不同的限制. 在MyISAM表中 ...

  6. [转]Resolving Python error: Unable to find vcvarsall.bat

    Resolving Python error: Unable to find vcvarsall.bat While installing python package flask-user usin ...

  7. WPF中MVVM模式下控件自有的事件绑定

    1.原因 在WPF中单纯的命令绑定往往不能满足覆盖所有的事件,例如ComboBox的SelectionChanged事件,DataGrid的SelectionChanged事件等等,这时就可以用事件绑 ...

  8. Tensorflow博文列表

    tensorflow:https://wenku.baidu.com/view/489ecc9727fff705cc1755270722192e44365853.html 语义分割SegNet:htt ...

  9. 性能检测参考SQL语句

    /****** Object: StoredProcedure [dbo].[SP_CPU] Script Date: 12/09/2018 19:01:24 ******/ SET ANSI_NUL ...

  10. [国家集训队]部落战争 最大流 BZOJ2150

    题目描述 lanzerb的部落在A国的上部,他们不满天寒地冻的环境,于是准备向A国的下部征战来获得更大的领土. A国是一个M*N的矩阵,其中某些地方是城镇,某些地方是高山深涧无人居住.lanzerb把 ...