Python正则表达式
来源:互联网 发布:vip视频解析端口原理 编辑:程序博客网 时间:2024/06/06 12:24
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配;python从1.5开始提供了re模块,包含perl风格正则表达式
re.match函数
次函数尝试从字符串的气势位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。语法:
re.match(pattern, string, flags=0)其中pattern代表匹配的正则表达式;string代表要匹配的字符串;flags标识位,用于控制正则表达式的匹配方式,如大小写,多行匹配等
匹配成功re.match()方法返回一个匹配的对象,否则返回none;可以使用group(num)或者groups()匹配对象函数来获取匹配表达式
>>> import re>>> print(re.match('www','www.xxx.com').span())(0, 3)>>> print(re.match('com','www.xxx.com'))None例子2
[root@centos7 ~]# vim 1.py#!/usr/bin/env pythonimport reline1='china is bigger than usa'match1 = re.match(r'(.*) is (.*?) .*',line1,re.M|re.I)if match1: print (match1.group()) print(match1.group(1)) print(match1.group(2))else: print("no match!")结果
[root@centos7 ~]# ./1.py china is bigger than usachinabigger
re.search方法
该方法扫描整个字符串并返回第一个成功的匹配,语法:
re.search(pattern, string, flags=0)pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位,控制正则表达式匹配方式,如:是否区分大小写,多行匹配等等
匹配成功返回一个匹配的对象,否则返回none
也可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式
>>> import re>>> print(re.search('www','www.xxx.com').span())(0, 3)>>> print(re.search('com','www.xxx.com').span())(8, 11)另一例子
[root@centos7 ~]# vim 1.py#!/usr/bin/env pythonimport reline1='china is bigger than usa'match1 = re.search(r'(.*) is (.*?) .*',line1,re.M|re.I)if match1: print (match1.group()) print(match1.group(1)) print(match1.group(2))else: print("no match!")结果
[root@centos7 ~]# ./1.py china is bigger than usachinabigger
re.match和re.search区别
re.match之匹配字符串的开始,否则返回none;而re.search匹配整个字符串,直到找到一个匹配
检索和替换
python的re模块提供了se.sub用于替换字符串中的匹配项,语法:
re.sub(pattern, rep, string, count=0)pattern:正则中的模式字符串
rep:替换的字符串,也可以为一个函数
string;要被炒找替换的原始字符串
count:模式匹配后替换的最大次数,0表示替换所有
>>> import re>>> phone='010-8888 8888' # a phone>>> num = re.sub(r'#.*$',"",phone)>>> print(num)010-8888 8888>>> num = re.sub(r'\D',"",phone) >>> print(num) 01088888888
rep是一个函数情况
>>> import re>>> def dou(match1): ... value = int(match1.group('value'))... return str(value * 2) ... >>> s = 'abc123xyz456' >>> print(re.sub('(?P<value>\d+)',dou,s))abc246xyz912
正则表达式修饰符
正则表达式可以包含可选的修饰符控制正则匹配;多个标识符使用|隔开
正则表达式模式
模式字符串使用特殊的语法表示一个正则表达式
字母和数字表示他们自身;多数字母和数字前加一个反斜杠时有不同的含义;
标点符号只有被转义是才匹配自身,否则表示特殊含义;反斜杠本身要反斜杠来转义;
由于正则表达式通常都包含反斜杠,所以可以使用原始字符串匹配,模式元素如r'/t',等价于'//t'匹配相应的特殊字符
模式元素
一些实例
字符实例
0 0
- python正则表达式学习
- c++正则表达式,python
- Python正则表达式(一)
- python的正则表达式
- Python正则表达式
- Python初学-正则表达式
- 正则表达式与python
- python正则表达式学习
- python正则表达式学习
- python正则表达式学习
- python正则表达式
- Python - 正则表达式
- Python正则表达式
- python正则表达式
- Python正则表达式指南
- Python正则表达式指南
- Python 正则表达式指南
- python 正则表达式
- 深度学习基础系列 (一) 之基础概念
- 回溯法之迷宫 栈的引用
- 上下移动~上下拖动实现思路流程
- JAVA基础学习---- 继承与合成(构造器)
- VC中出现“烫烫烫”的原因分析
- Python正则表达式
- js高考倒计时
- 关于算法不断优化的乐趣
- 正则re的使用情况
- 组策略方式关闭445端口
- Java正则表达式详解
- 2017年华东师范大学网络赛 F
- SQL server 2008 安装报错 reporting services catalog database file existence
- 深度学习视觉领域常用数据集汇总