Python正则表达
```
# -*- 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正则表达的更多相关文章
- python 正则表达提取方法 (提取不来的信息print不出来 加个输出type 再print信息即可)
1,正则表达提取 (findall函数提取) import re a= "<div class='content'>你大爷</div>"x=re.finda ...
- Python 正则表达试
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦, ...
- Python 正则表达模块详解
Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...
- Python正则表达计算器
Python学习笔记(十二): 计算器 利用Python的正则表达式写的简易计算器 # author : Ryoma # time : 17:39 import re def add(string): ...
- PYTHON 正则表达示入门
确实是实践出真知,自己手打代码之后,以前停在理论上的东东,慢慢可以进入实战了. 比如,MATCH和SEARCH之间的区别. #encoding: UTF-8 import re pattern = r ...
- python正则表达提取文本好文
摘自: http://www.cnblogs.com/rj81/p/5933838.html
- Python之面向对象和正则表达(代数运算和自动更正)
面向对象 一.概念解释 面对对象编程(OOP:object oriented programming):是一种程序设计范型,同时也是一种程序开发的方法,实现OOP的程序希望能够在程序中包含各种独立而又 ...
- python——re模块(正则表达)
python——re模块(正则表达) 两个比较不错的正则帖子: http://blog.csdn.net/riba2534/article/details/54288552 http://blog.c ...
- 正则表达示 for Python3
前情提要 从大量的文字内容中找到自己想要的东西,正则似乎是最好的方法.也是写爬虫不可缺少的技能.所以,别墨迹了赶紧好好学吧! 教程来自http://www.runoob.com/python3/pyt ...
随机推荐
- MongoDB单表导出与导入
mongoexport -h -u dbAdmin -p L-$LpGQ=FJvSf*****([l --authenticationDatabase=project_core_db -d proje ...
- OC语言自定义打印
1.为了全文通用,选择在PCH文件中写: // // 版权所有:Copyright © 2018年 Lelight. All rights reserved. // 创 建 者: Lelight // ...
- hadoop中常用的hdfs代码操作
一:向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件: package hadoopTest; import org.apache.h ...
- CLion中出现错误add_dependencies called with incorrect number of arguments解决
出现这个错误以后我以为是IDE出现问题了,可是重新启动,打开其他的工程文件以后发现并没有这个错误,但是新建的文件却报错 然后就打开其他工程的Cmake_list.txt文件,发现最后一行是有工程文件夹 ...
- Python变量类型的强制转换
当我们需要对数据的类型转换时,只需要将数据类型作为函数名即可. 下面给出的函数可以执行数据类型之间的转换,函数返回一个新的对象,表示转换的值 函数格式 使用示例 描述 int(x [,base]) i ...
- 华为敏捷/DevOps实践:产品经理如何开好迭代计划会议
大家好,我是华为云DevCloud项目管理服务的产品经理恒少,作为布道师和产品经理,出差各地接触客户是常态,线下和华为云的客户交流.布道.技术沙龙. 但是线下交流,覆盖的用户总还是少数.我希望借助线上 ...
- DQL、DML、DDL、DCL的区别
1. 历史发展 SQL(Structure Query Language)语言是数据库的核心语言. SQL的发展是从1974年开始的,其发展过程如下:1974年-----由Boyce和Chamberl ...
- R语言常用包汇总
转载于:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1 一.一些函数包大汇总 ...
- 把磁力下载站改为python系统
已经一年半载没有写博客了,搞得上来不知道写些什么. 索马里影视下载 WWW.IBMID.COM 现在用的是CENTOS 7 系统, 经历了多次点技术变更.开源版本使用了django网站框架重写,之 ...
- vue 同一个组件的跳转, 返回时保留原来的下拉位置
1,需求分析 公司的项目有这样一个需求: 同一个list组件,根据传过来的listId渲染成多个页面,每个页面都可以下拉.在返回到不同的list页面时,要保留当时下拉的位置. 说的我自己都有点懵逼了, ...