正则表达式元字符说明

. 匹配除换行符以外的任意字符

^ 匹配字符串的开始

$ 匹配字符串的结束

[] 用来匹配一个指定的字符类别

? 对于前一个字符字符重复0次到1次

* 对于前一个字符重复0次到无穷次

{} 对于前一个字符重复m次

{m,n} 对前一个字符重复为m到n次

\d 匹配数字,相当于[0-9]

\D 匹配任何非数字字符,相当于[^0-9]

\s 匹配任意的空白符,相当于[ fv]

\S 匹配任何非空白字符,相当于[^ fv]

\w 匹配任何字母数字字符,相当于[a-zA-Z0-9_]

\W 匹配任何非字母数字字符,相当于[^a-zA-Z0-9_]

\b 匹配单词的开始或结束

模块函数说明即举例

re.compile 将正则表达式编译成pattern对象

compile(pattern, flags=0)

第一个参数:规则

第二个参数:标志位

re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None

match(pattern, string, flags=0)

第一个参数:规则

第二个参数:表示要匹配的字符串

第三个参数:标致位,用于控制正则表达式的匹配方式

re.search 匹配整个字符串,直到找到一个匹配

search(pattern, string, flags=0)

第一个参数:规则

第二个参数:表示要匹配的字符串

第三个参数:标致位,用于控制正则表达式的匹配方式

>>> import re

>>> pattern = re.compile(r'linuxeye')

>>> match = pattern.match('linuxeye.com')

>>> print match

>>> print match.group()

linuxeye

>>> m = pattern.match('linuxeye.com') #match匹配开头,没找到

>>> print m

None

>>> m = pattern.search('linuxeye.com') #search匹配整个字符串,直到找到一个匹配

>>> print m

>>> print m.group()

linuxeye

>>> m = re.match(r'linuxeye','linuxeye.com') #不用re.compile

>>> print m

>>> print m.group()

linuxeye

>>> m = re.match(r'linuxeye','www.linuxeye.com')

>>> print m

None

re.split 用于来分割字符串

split(pattern, string, maxsplit=0)

第一个参数:规则

第二个参数:字符串

第三个参数:最大分割字符串,默认为0,表示每个匹配项都分割

实例:分割所有的字符串

>>> import re

>>> test_str = "1 2 3 4 5"

>>> re.split(r'\s+',test_str)

['1', '2', '3', '4', '5']

>>> re.split(r'\s+',test_str,2) #分割前2个

['1', '2', '3 4 5']

>>> test_str = "1 . 2. 3 .4 . 5"

>>> re.split(r'\.',test_str)

['1 ', ' 2', ' 3 ', '4 ', ' 5']

>>> re.split(r'\.',test_str,3)

['1 ', ' 2', ' 3 ', '4 . 5']

re.findall 在目标字符串查找符合规则的字符串

findall(pattern, string, flags=0)

第一个参数:规则

第二个参数:目标字符串

但三个参数:后面还可以跟一个规则选择项

返回的结果是一个列表,建中存放的是符合规则的字符串,如果没有符合规则的字符串呗找到,就会返回一个空值

>>> import re

>>> test_mail = ' test03@gmail.net'

>>> mail_re = re.compile(r'\w+@g....\.[a-z]{3}')

>>> re.findall(mail_re,test_mail)

['test01@gmail.com', 'test02@gmail.org', 'test03@gmail.net']

re.sub 以正则表达式为基础的替换工作

sub(pattern, repl, string, count=0)

第一个参数:规则

第二个参数:替换后的字符串

第三个参数:字符串

第四个参数:替换个数。默认为0,表示每个匹配项都替换

>>> test = 'linuxeye.com linuxeye.com'

>>> test_re = re.compile(r'\.')

>>> re.sub(test_re,'--',test)

'blog--linuxeye--com linuxeye--com'

>>> re.sub(test_re,'--',test,1)

'blog--linuxeye.com linuxeye.com'

Sun Oct 20 17:46:09 CST 2013

python re模块_Python re模块相关推荐

  1. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  2. python莫比乌斯环_python基础|模块

    1 模块简介 在python中常见的模块有三种,在python解释器中的内置模块,第三方模块和自定义模块.模块的有使用python编写的文件,有已被编译为共享库或DLL的C或C++扩展,也有使用C编写 ...

  3. python如何自定义模块_python自定义模块和开源模块使用方法

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  4. python import变量_Python import模块调用

    开发过程中代码越写越多,在一个文件里代码会越来越长,不容易维护,为了容易维护代码,我们把很多函数分组,分别放在不同的文件里,在Python中,一个.py文件就是模块(Module) 工具/原料 Pyt ...

  5. python shelve模块_python常用模块之shelve模块

    python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...

  6. python常用运维模块_python常用模块之一

    sys模块: sys模块是提供关于python本身的详细内在的信息的模块. sys.executable变量,它包含python解释器的路径 sys.platform变量,告诉我们现在处于什么操作系统 ...

  7. python 多层包多模块_python Modules模块操作

    今天学习python的Modules模块操作,并记录学习过程欢迎大家一起交流分享. 首先新建一个python文件命名为my_module.py的自定义moudle文件,在这个文件中进行模块代码编写: ...

  8. python counter模块_python collections模块 计数器(counter)

    一.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能 把我写入的元素出现的多少次都计算出来 import collectio ...

  9. 如何显示python的内置模块_python之模块(内置模块)

    内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 一.sys 用于提供对Python解释器相关的操作: 1 sys.argv #命令行参数List,第一个元素是程 ...

  10. python中的模块_python的模块和包的详细说明

    Python模块和包的详细说明 模块的导入 模块的加载与修改 模块和脚本的说明 模块搜索路径 包的导入 一.模块的导入 之前我们简单的使用了一下模块,并没有详细的介绍,现在我们来详细的说说 1.什么是 ...

最新文章

  1. android 布局 站位符,基于android布局中的常用占位符介绍
  2. SAP MM 采购ERP顾问咨询费限制总金额的框架协议实现方案
  3. Android.mk 配置参数
  4. java int 0.5_java int转float精度缺失原因?
  5. 详解java集合之LinkedList——底层实现是头尾、双向节点,尽情地问我有没有看过集合源码吧!
  6. 三十一、Vue框架赶紧来了解一下
  7. 【HDOJ】2389 Rain on your Parade
  8. 「熊猫」变「长臂猿」,「乌龟」变「来复枪」,深度学习模型被攻击,破解之道有哪些?
  9. 笔记本外接2K显示器
  10. php 秒拍视频解析,高仿秒拍视频网EMLOG主题模板
  11. android禁用状态栏5.1,Android5.1禁止状态栏下拉(SystemUI StatusBar)
  12. Daimayuan Online Judge 小蜗的疑问
  13. 14、系统架构师指南 - 软件项目角色指南系列文章
  14. 2020网络安全NISP一级(模拟题七)
  15. web安全攻防学习之1-渗透测试信息收集
  16. 以程序员的视角带你看郑州
  17. 一位高僧的告诫:人在惹祸前,往往有3个征兆,有一个就要警醒!
  18. [4G5G专题-75]:流程 - 4G LTE无线接入网中运营商标识、基站标识、终端标识大全
  19. Spring排除功能
  20. python 嵌套函数及其练习题

热门文章

  1. Microsoft Visual Studio 2012 添加实体数据模型
  2. 事件冒泡和阻止事件冒泡
  3. 阿里云大数据计算服务MaxCompute(下篇)
  4. 2015湖南省省赛 阶乘除法 暴力
  5. 开发中新游戏《庞加莱》
  6. 跨越企业的“中等收入陷阱”
  7. .NET Winform也能画出类似QQ、飞信这样的窗口风格和控件效果
  8. 研究人员测试27个黑客服务 结果仅三个完成任务
  9. Ubuntu16.04.1 安装Nginx
  10. Cisco HSRP热备份路由器协议配置