python学习笔记(24)正则

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

原链:http://www.cnblogs.com/vamei/archive/2012/08/31/2661870.html

笔记:一半的笔记,半吊子水平

#第25讲 re正则

#语法:
#re.match(pattern, string, flags=0)
#两个参数,pattern 匹配的正则表达式   str 需要正则匹配字符串  flag 大小写多行匹配

import re
m = re.search(‘[0-9]‘,‘fdaf6dfae‘)
print (m.group(0))
print (m.group())

#返回就是匹配到的数字 

‘‘‘
关于group
在我们上面的匹配中没有引入group,整个表达式就是一个组,group()同group(0),所以输出是一致的
所以print 那里用了m.group(0) 

‘‘‘
a = ‘13abc456‘
print (re.search(‘([0-9]*)([a-z]*)([0-9]*)‘,a).group(0))
#返回group(0) 132abc456

print (re.search(‘([0-9]*)([a-z]*)([0-9]*)‘,a).group(1))
#返回group(1) 第一个括号匹配部分

print (re.search(‘([0-9]*)([a-z]*)([0-9]*)‘,a).group(2))
#返回group(2) 第二个括号匹配部分

print (re.search(‘([0-9])*([a-z])*([0-9]*)‘,a).group(3))
#返回group(3) 第三个括号匹配部分

‘‘‘
1. 正则表达式中的三组括号把匹配结果分成三组

     group() 同group(0)就是匹配正则表达式整体结果
     group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。

2. 没有匹配成功的,re.search()返回None

3. 当然郑则表达式中没有括号,group(1)肯定不对了
   就会报错,indexerror,no such group 没有这个group
‘‘‘

#正则表达式的函数
#m = re.search(pattern,str)#搜索整个字符串,直到发现符合的字符串
#m = re.match(pattern,str)#从头检查str是否符合正则表达式,必须从第一个字符就相符

m = re.search(‘[0-9]‘,‘fdaf6dfae‘)
#这个如果用match函数匹配,返回是None
#字符串是f开头的,不符合‘([0-9])‘的要求

#正则匹配的字符进行替换
#str = re.sub(pattern, replacement, str)

a = re.sub(‘([0-9])‘,‘6‘,‘adf3dsf‘)
print (a)

#输出后3就被替换成了6

#正则匹配的字符进行切片
a = re.split(‘([0-9])‘,‘faffd3fdf‘)
print (a)

#输出后整个str被切片成3片,前半部分字符,数字,后半部分字符,放在list返回

#正则匹配搜索字符串
a = re.findall(‘a‘,‘fdsagr‘)
print (a)

#输出就是把符合的字符串放在list返回

#作者最后附注了re.compile,让去了解
#找到了资料,看不懂

#编译正则表达式模式,返回一个对象的模式。(可以把那些常用的正则表达式编译成正则表达式对象,这样可以提高一点效率。)
#语法:re.compile(pattern,flags=0)
import re
tt = "Tina is a good girl, she is cool, clever, and so on..."
rr = re.compile(r‘\w*oo\w*‘)
print(rr.findall(tt))   #查找所有包含‘oo‘的单词

#\w   匹配单词    * 匹配一个字符0或无限次(重复>=0次)
#r  是防止转义   保留原有的样式
时间: 2024-11-15 12:40:36

python学习笔记(24)正则的相关文章

Python学习笔记24:Django搭建简单的博客网站(二)

上一节说道如何使用Django创建并运行一个项目,这节说如何添加一个博客应用. 一 项目跟应用的关系 在添加应用之前,先来看看项目与应用之间有什么不同之处呢? 项目是针对一个特定的 Web 网站相关的配置和其应用的组合.一个项目可以包含多个应用. 应用是一个提供功能的 Web 应用 – 例如:一个博客系统.一个公共记录的数据库或者一个简单的投票系统. 应用是"可插拔的":你可以在多个项目使用一个应用,你还可以分发应用,因为它们没有被捆绑到一个给定的 Django 安装环境中. 这样,我

python学习笔记24(路径与文件 (os.path包, glob包))

os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法. >>> import os.path >>> path = '/home/ethon/doc/file.txt' >>> os.path.abspath(path) # 返回path规范化的绝对路径 'C:\\home\\ethon\\doc\\file.txt' >>> os.path.split(path) # 将path分割成目录和文件名二

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

python学习笔记[3]-邮件的发送

本文摘抄自:http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍:    1.smtplib模块 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])   SMTP类构造函数,表示与SMTP服务器之间的连接,通过这个连接可以向smtp服务器发送指令,执行

python 学习笔记 13 -- 常用的时间模块之time

Python 没有包含对应日期和时间的内置类型,不过提供了3个相应的模块,可以采用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口.datetime 中的类支持算术.比较和时区配置. *    calendar 模块可以创建周.月和年的格式化表示.它还可以用来计算重复事件.给定日期是星期几,以及其他基

python学习笔记(03):函数

默认参数值:   只有在行参表末尾的哪些参数可以有默认参数值,即 def func(a, b=5 )#有效的 def func( a=5,b )#无效的 关键参数: #!/usr/bin/python # Filename: func_key.py def func(a, b=5, c=10): print 'a is', a, 'and b is', b, 'and c is', c func(3, 7) func(25, c=24) func(c=50, a=100) #输出: $ pyth

python 学习笔记re

在学习python的过程中很多时候都需要用到re(正则),因为我也不是开发所以呢只是简单说一下经常需要用到的东西. 在工作中经常用到的主要是三个函数:1.math   2.search   3.sub  4.split 1.re.math(a,b) math和search其实用法差不多,只是找的范围不同而已 如下: import re def reg(): a = 'absdfasdfasdf' if re.match('sd',a): print 'a' else: print 'b' reg

python 学习笔记 13 -- 经常使用的时间模块之time

Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处理器的执行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口. datetime 中的类支持算术.比較和时区配置. *    calendar 模块能够创建周.月和年的格式化表示. 它还能够用来计算反复事件.给定日期是星期几,以及其

python学习笔记-输入输出

格式化输出 print(format(value,format_spec)),其中3为打印位数,2f为精度 print(format(12.2356, '3.2f')) print(format(0.23456,'.1%')) D:\Python27\python.exe F:/Self-Study/python-study/input_output.py 12.24 23.5% python学习笔记-输入输出