python正则表达式模块
正则表达式是对字符串的最简约的规则的表述。python也有专门的正则表达式模块re.
| 正则表达式函数 | 释义 |
| re.match() | 从头开始匹配,匹配失败返回None,匹配成功可通过group(0)返回匹配成功的字符串 |
| re.search() | 扫描整个字符串,并返回第一个匹配的字符串 |
| re.sub() | 对符合要求的所有子串进行替换 |
| re.findall() | 以列表形式返回所有符合条件的子串 |
| re.split() | 以模式作为切分符号切分字符串,并返回列表 |
| re.finditer() | 找到 RE 匹配的所有子串,并把它们作为一个迭代器返回 |
| re.compile() | 把那些经常使用的正则表达式编译成正则表达式对象 |
| re.group() | 返回被 RE 匹配的字符串 |
| re.start() | 返回匹配开始的位置 |
| re.end() | 返回匹配结束的位置 |
| re.span() | 返回一个元组包含匹配 (开始,结束) 的位置 |
import re list=['15865548338cong' ,'abcd18701687236ef','gafei18511371536' ,'wb15865737271dad13244556677']
print(list)
for items in list:
# start
l=re.match( r'\d{11}',items )
print('match:',l )
if l!=None:
print('match.group(0)',l.group(0))
# start-end
m = re.search( '[0-9]{11}',items )
print('search:',m.group( 0))
print('search,.start:',m.start())
print('search,.end:',m.end())
print('search,.span:',m.span())
# replace
n=re.sub( r'\d','*' ,items)
print('sub:',n )
# return list
o=re.findall(r'\d{11}',items )
print('findall:',o )
# str2list
p=re.split( r'\d+',items )
print('split:',p )
# iterator
q=re.finditer(r'\d+',items )
for i in q:
print('finditer:' ,i.group())
pattern=re.compile(r'\d{11}')
print pattern.findall(items) print('***********************************************' )
输出结果:
['15865548338cong', 'abcd18701687236ef', 'gafei18511371536', 'wb15865737271dad13244556677']
('match:', <_sre.SRE_Match object at 0x00000000025D2510>)
('match.group(0)', '')
('search:', '')
('search,.start:', 0)
('search,.end:', 11)
('search,.span:', (0, 11))
('sub:', '***********cong')
('findall:', [''])
('split:', ['', 'cong'])
('finditer:', '')
['']
***********************************************
('match:', None)
('search:', '')
('search,.start:', 4)
('search,.end:', 15)
('search,.span:', (4, 15))
('sub:', 'abcd***********ef')
('findall:', [''])
('split:', ['abcd', 'ef'])
('finditer:', '')
['']
***********************************************
('match:', None)
('search:', '')
('search,.start:', 5)
('search,.end:', 16)
('search,.span:', (5, 16))
('sub:', 'gafei***********')
('findall:', [''])
('split:', ['gafei', ''])
('finditer:', '')
['']
***********************************************
('match:', None)
('search:', '')
('search,.start:', 2)
('search,.end:', 13)
('search,.span:', (2, 13))
('sub:', 'wb***********dad***********')
('findall:', ['', ''])
('split:', ['wb', 'dad', ''])
('finditer:', '')
('finditer:', '')
['', '']
***********************************************
请按任意键继续. . .
python正则表达式模块的更多相关文章
- Python 正则表达式模块 (re) 简介
Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,和 Perl 脚本的正则表达式功能类似,使用这一内嵌于 Python 的语言工具,尽管不能 ...
- Python正则表达式模块(re模块)
Python是我接触到的第一门编程语言,虽然它足够简单,但是对于当时刚刚接触编程语言的我来说还是有些难度的,于是只是了解了一些Python的基本语法,稍微深入一点的地方都没怎么了解.不过,到现在为止, ...
- python正则表达式模块re:正则表达式常用字符、常用可选标志位、group与groups、match、search、sub、split,findall、compile、特殊字符转义
本文内容: 正则表达式常用字符. 常用可选标志位. group与groups. match. search. sub. split findall. compile 特殊字符转义 一些现实例子 首发时 ...
- python正则表达式模块re
正则表达式的特殊元素 匹配符号 描述 '.'(点dot) 在默认模式下,它匹配除换行符之外的任何字符.如果指定了DOTALL标志,则匹配包括换行符在内的任何字符 '^'(Caret) 匹配以字符串开头 ...
- 更强大的python正则表达式模块 -- regex
python内置的正则表达库re比较弱,而且似乎在好几年里都没太大的变化. 这里介绍这个python模块regex,实现了更多方便好用的功能. 比如:\p{han} 可以匹配汉字, \p{Latin} ...
- 一篇搞定Python正则表达式
1. 正则表达式语法 1.1 字符与字符类 1 特殊字符:\.^$?+*{}[]()| 以上特殊字符要想使用字面值,必须使用\进行转义 2 字符类 1. 包含在[]中的一个或者多个字符被称为字符 ...
- Python正则表达式很难?一篇文章搞定他,不是我吹!
1. 正则表达式语法 1.1 字符与字符类 1 特殊字符:.^$?+*{}| 以上特殊字符要想使用字面值,必须使用进行转义 2 字符类 1. 包含在[]中的一个或者多个字符被称为字符类,字符类在匹配时 ...
- Python正则表达式学习记录
常用的命令: http://www.runoob.com/python/python-reg-expressions.html 使用中相关注意问题: 1. 中括号里的表示从N到M需要用横线‘-’, 而 ...
- Python正则表达式 学习笔记
python第一个正则表达式 1. import re : python正则表达式模块 2. 第一个正则表达式 re.compile(r'imooc') pattern.match('imooc py ...
随机推荐
- Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
Virtual addresses from multiple address spaces are translated to real addresses in main memory by ge ...
- qLibc 对于C C++都是一个很好的框架,提供Tree Hash Stack String I/O File Time等功能
qLibc Copyright qLibc is published under 2-clause BSD license known as Simplified BSD License. Pleas ...
- Using default security password
不展示Using default security password的解决办法: import org.springframework.context.annotation.Bean; import ...
- .NET基础拾遗
原帖地址: http://www.cnblogs.com/edisonchou/p/4787775.html
- 在嵌入式程序中QT去掉鼠标指针
在像arm的QT编程当中,一般都是使用触摸来操作,当是我们运行程序的时候会发现总是有个鼠标箭头在那里,下面介绍种方法将其给去掉.这样就漂亮多了.在main()函数加入 #include <QWS ...
- Windows安装Linux子系统--安装GUI界面
原文:Windows安装Linux子系统--安装GUI界面 前段时间发现Windows可以安装Linux子系统了,恰逢电脑换了固态,还没装Linux,不如趁机体验一番! 1.准备工作 1.1.打开 ...
- 将指定路径下的所有SVG文件导出成PNG等格式的图片(缩略图或原图大小)
原文:将指定路径下的所有SVG文件导出成PNG等格式的图片(缩略图或原图大小) WPF的XAML文档(Main.xaml): <Window x:Class="SVG2Image.Ma ...
- .net 模拟发起HTTP请求(用于上传文件)
用C#在服务端发起http请求,附上代码一 /// <summary> /// 文件帮助类 /// </summary> public class FileHelper { / ...
- C++ 异常机制分析(C++标准库定义了12种异常,很多大公司的C++编码规范也是明确禁止使用异常的,如google、Qt)
阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开.RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能 ...
- 关于hibernate组件配置
建立关系数据模型的一个重要原则是在不会导致数据冗余的前提下,尽可能减少数据库表的数目及表之间的外键参照关系.以员工信息为例,员工信息中有员工的家庭地址信息,如果把地址信息单独放在一张表中,然后建立员工 ...