【直接上代码】

#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的主要用到的方法列举的更多相关文章

  1. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

  2. python匹配ip正则

    python匹配ip正则 #!/usr/bin/env python # -*- coding:utf-8 -*- import re ip_str = "asdad1.1.1.1sdfwe ...

  3. 【归纳】正则表达式及Python中的正则库

    正则表达式 正则表达式30分钟入门教程 runoob正则式教程 正则表达式练习题集(附答案) 元字符\b代表单词的分界处,在英文中指空格,标点符号或换行 例子:\bhi\b可以用来匹配hi这个单词,且 ...

  4. python 爬虫之 正则的一些小例子

    什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑. 正则并不是pyth ...

  5. Python实例---利用正则实现计算器[FTL版]

    import re # 格式化 def format_str(str): str = str.replace('--', '+') str = str.replace('-+', '-') str = ...

  6. Python中的正则

    regex_lst = [ ('字符组',), ('非打印字符',), ('特殊字符',), ('定位符',), ('限定符',), ('re模块',), ('分组命名',), ('或匹配',), ( ...

  7. Python模块(三)(正则,re,模块与包)

    1. 正则表达式 匹配字符串 元字符 .   除了换行 \w  数字, 字母, 下划线 \d  数字 \s  空白符 \n 换行符 \t  制表符 \b  单词的边界 \W  \D \S 非xxx [ ...

  8. python获取字母在字母表对应位置的几种方法及性能对比较

    python获取字母在字母表对应位置的几种方法及性能对比较 某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://project ...

  9. 【C++实现python字符串函数库】strip、lstrip、rstrip方法

    [C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...

随机推荐

  1. Vim插件集合

    插件Nerdtree实现浏览文件系统并打开文件或目录,在window中是非常不错的插件,但是在Ubuntu中这个插件就是一坑,特别提示,且无解.若在Ubuntu中使用目录浏览插件,建议使用其他插件,如 ...

  2. Linux下安装uci

    Compiling UCI as stand alone cd ~ git clone git://nbd.name/uci.git ~/uci cd ~/uci cmake -DBUILD_LUA= ...

  3. supervisor的安装部署及集群管理

    supervisor的安装部署及集群管理 supervisor官网:http://www.supervisord.org/ 参考链接: http://blog.csdn.net/xyang81/art ...

  4. 协程实现多并发socket,跟NGINX一样

    server: #!/usr/bin/env python # -*- coding: utf-8 -*- # author aliex-hrg import gevent from gevent i ...

  5. sqlserver 全局事务查询

    -- 此语句用于查看最老的活动事务.未完成的分布式事务或复制事务的信息. dbcc opentran -- 通过动态管理视图查看活动事务 select*from sys.dm_tran_active_ ...

  6. Java第10次实验(网络)

    参考资料 本次作业参考文件 正则表达式参考资料 漫画:HTTP 协议极简教程,傻瓜都能看懂! 注:主要根据实验任务书的指导完成本次实验. 第1次实验 1. 网络基础 ipconfig.ping Con ...

  7. 关于requests的session方法保持不了cookie的问题。(seesion的意思是保持一个会话,比如 登陆后继续操作(记录身份信息) 而requests是单次请求的请求,身份信息不会被记录)

    最近在做爬虫的时候遇到了一个问题,在用requests的session方法保持cookie的时候发现requests不能保持手动构建的cookie.起初以为requests只能自动保持由服务器返回的s ...

  8. IDC:机房监控系统

    ylbtech-IDC:机房监控系统 机房监控系统主要是针对机房所有的设备及环境进行集中监控和管理的,其监控对象构成机房的各个子系统:动力系统.环境系统.消防系统.保安系统.网络系统等. 1.返回顶部 ...

  9. MySQL binlog 企业案例升级版

    需求:1.创建一个数据库 oldboy2.在oldboy下创建一张表t13.插入5行任意数据4.全备5.插入两行数据,任意修改3行数据,删除1行数据6.删除所有数据7.再t1中又插入5行新数据,修改3 ...

  10. F5负载均衡原理(转载)

    https://blog.csdn.net/panxueji/article/details/42647193 一. 负载均衡技术 负载均衡技术在现有网络结构之上提供了一种廉价.有效.透明的方法,来扩 ...