【python】python与正则 re的主要用到的方法列举
【直接上代码】
#coding=utf-8
#1、先将正则表达式的字符串形式编译为Pattern实例
#2、使用Pattern实例处理文本并获得匹配结果
#3、最后使用Match实例获得消息,进行其他操作
import re
# 【1】 re.compile(string[,flag]) 将正则表达式编译成pattern对象
'''
# 【2】re.match(pattern,string[,flags])
# 从输入参数string的开头开始尝试匹配pattern,
# 遇到无法匹配的字符或者已经到达string末尾,立即返回None,反之获取匹配的结果
#将正则表达式编译成pattern对象
pattern = re.compile(r'\d+')
#使用re.match匹配文本,获得匹配结果,无法匹配时将返回None
result1 = re.match(pattern,'192abc')
if result1:
print result1.group()
else:
print '匹配失败1'
result2 = re.match(pattern,'abc192')
if result2:
print result2.group()
else:
print '匹配失败2'
#输出结果--------> 192 匹配失败2 resul2匹配的时候遇到a的时候无法匹配,立即返回None
'''
'''
# 【3】re.search(pattern,string[,flags])
#match()函数只从string的开始位置匹配
#search()会扫描整个string查找匹配
#将正则表达式编译成pattern对象
pattern = re.compile(r'\d+')
#使用re.search匹配文本获得匹配结果,无法匹配时将返回None
result1 = re.search(pattern,'abc192def')
if result1:
print result1.group()
else:
print '匹配失败1'
#运行结果--------> 192
'''
'''
# 【4】re.split(pattern,string[,maxsplit])
#按照能够匹配的子串将string分割后返回 列表
#maxsplit用于指定最大分割次数,不指定则将全部分割
pattern = re.compile(r'\d+')
print re.split(pattern,'A1B2C3D4')
#运行结果-----------> ['A', 'B', 'C', 'D', '']
'''
'''
# 【5】re.findall(pattern,string[,flags])
#搜索整个string,以列表形式返回能匹配的全部子串
pattern = re.compile(r'\d+')
print re.findall(pattern,'A1B2C3D4')
#运行结果----------> ['1', '2', '3', '4']
'''
'''
# 【6】re.finditer(pattern,string[,flags])
#搜索整个string,以迭代器形式返回能匹配的全部Match对象
pattern = re.compile(r'\d+')
matchiter = re.finditer(pattern,'A1B2C3D4')
for match in matchiter:
print match.group()
#运行结果------>
# 1
# 2
# 3
# 4
'''
'''
# 【7】re.sub(pattern,repl,string[,count])
#使用repl替换string中每一个匹配的子串后返回替换后的字符串。
#当repl是一个字符串时,可以使用 \id 或 \g<id> 、 \g<name> 引用分组,但不能使用编号0.
#当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组)
#count用于指定最多替换的次数,不指定时全部替换
p = re.compile(r'(?P<word1>\w+) (?P<word2>\w+)') #使用名称引用
s = 'i say ,hello world!'
print p.sub(r'\g<word2> \g<word1>',s)
p = re.compile(r'(\w+) (\w+)') #使用编号
print p.sub(r'\2 \1',s)
def func(m):
return m.group(1).title() + ' ' + m.group(2).title()
print p.sub(func,s)
#输出结果------>
# say i ,world hello!
# say i ,world hello!
# I Say ,Hello World!
'''
# 【8】re.subn(pattern,string[,count])
#返回 (sub(repl,string[,count]),替换次数)。
s = 'i say ,hello world!'
p = re.compile(r'(\w+) (\w+)')
print p.subn(r'\2 \1',s)
def func(m):
return m.group(1).title() + ' ' + m.group(2).title()
print p.subn(func,s)
#运行结果-------->
# ('say i ,world hello!', 2)
# ('I Say ,Hello World!', 2)
【python】python与正则 re的主要用到的方法列举的更多相关文章
- python浅谈正则的常用方法
python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...
- python匹配ip正则
python匹配ip正则 #!/usr/bin/env python # -*- coding:utf-8 -*- import re ip_str = "asdad1.1.1.1sdfwe ...
- 【归纳】正则表达式及Python中的正则库
正则表达式 正则表达式30分钟入门教程 runoob正则式教程 正则表达式练习题集(附答案) 元字符\b代表单词的分界处,在英文中指空格,标点符号或换行 例子:\bhi\b可以用来匹配hi这个单词,且 ...
- python 爬虫之 正则的一些小例子
什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑. 正则并不是pyth ...
- Python实例---利用正则实现计算器[FTL版]
import re # 格式化 def format_str(str): str = str.replace('--', '+') str = str.replace('-+', '-') str = ...
- Python中的正则
regex_lst = [ ('字符组',), ('非打印字符',), ('特殊字符',), ('定位符',), ('限定符',), ('re模块',), ('分组命名',), ('或匹配',), ( ...
- Python模块(三)(正则,re,模块与包)
1. 正则表达式 匹配字符串 元字符 . 除了换行 \w 数字, 字母, 下划线 \d 数字 \s 空白符 \n 换行符 \t 制表符 \b 单词的边界 \W \D \S 非xxx [ ...
- python获取字母在字母表对应位置的几种方法及性能对比较
python获取字母在字母表对应位置的几种方法及性能对比较 某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://project ...
- 【C++实现python字符串函数库】strip、lstrip、rstrip方法
[C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...
随机推荐
- A* search算法
今天,还是国庆和中秋双节的时间节点,一个天气不错的日子,孩子已经早早的睡觉了,玩了一整天,也不睡觉,累的实在扛不住了,勉强洗澡结束,倒床即睡着的节奏... 不多说题外话,进入正题. 什么是A*搜索算法 ...
- 如何在Visual Studio 2013中连接中国版的Azure
http://diaosbook.com/Post/2014/8/23/connect-azure-cn-in-vs2013 VS2013的Server Explorer在第一次连接Azure的时 ...
- ubuntu 16.04 安装VS CODE时 此软件来自第三方且可能包含非自由组件
先安装gdebi: sudo apt-get install gdebi 然后执行: sudo apt install ./vscode.deb
- plsql 创建表空间、用户、赋予权限
plsql 创建表空间.用户.赋予权限 --用户名:testuser --密码:bzhs!*6 --1.创建表空间--用SYSTEM用户登陆数据库,执行下面语句创建表空间CREATE TABLESPA ...
- Winform 界面全屏 显示状态栏
this.FormBorderStyle = FormBorderStyle.None; this.MaximumSize = new Size(Screen.PrimaryScreen.Workin ...
- require的定义看不懂【2】
一段代码扔出来,前不着村后不着店的,各种全局变量 还有,现在还在纠结Id,url, 作者充其量也在写读书笔记,完全沿着自己思路走,也不管读者是否跟得上,这居然也能出书. 这一段,掌握源码,或者写过的人 ...
- Java第06次实验提纲(集合)
PTA与参考资料 重要参考-集合简述 题集:jmu-Java-06-集合 集合实验文件 第1次实验 1.1 ArrayListIntegerStack(课堂演示) 可演示:jdk中的javadoc文档 ...
- github简单命令
1.安装yum install -y git 2.配置帐户(github.com注册)git config --global user.name goozgkgit config --global u ...
- Ubuntu16.04 LTS软件中心闪退及修改阿里源
现象: 进入软件中心点击任意,直接退出 解决办法: 先更换软件源,我的为阿里云 1. 备份 源位置 :/etc/apt/sources.list 2. 更改 sudo vi /etc/apt/sour ...
- 测试教程网.unittest教程.5. 实例: 找出所有是弱密码的用户
From: http://www.testclass.net/pyunit/test_example_3/ 背景 当我们的测试数据是下面这些的时候,我们的用例是有问题的. [ {"name& ...