python正则表达式模块简介

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emacs 风格的模式。Emacs 风格模式可读性稍差些,而且功能也不强,因此编写新代码时尽量不要再使用 regex 模块,当然偶尔你还是可能在老代码里发现其踪影。

就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现。使用这个小型语言,你可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、e-mail地址、TeX命令或任何你想搞定的东西。然后你可以问诸如“这个字符串匹配该模式吗?”或“在这个字符串中是否有部分匹配该模式呢?”。你也可以使用 RE 以各种方式来修改或分割字符串。

正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。在高级用法中,也许还要仔细留意引擎是如何执行给定 RE ,如何以特定方式编写 RE 以令生产的字节码运行速度更快。本文并不涉及优化,因为那要求你已充分掌握了匹配引擎的内部机制。

正则表达式语言相对小型和受限(功能有限),因此并非所有字符串处理都能用正则表达式完成。当然也有些任务可以用正则表达式完成,不过最终表达式会变得异常复杂。碰到这些情形时,编写 Python 代码进行处理可能反而更好;尽管 Python 代码比一个精巧的正则表达式要慢些,但它更易理解。

正则表达式一个比较常见的用途是找到所有模式匹配的字符串并用不同的字符串来替换它们。sub方法提供一个替换值,可以是字符串或函数,和一个要被处理的字符串。

Grammar:

re.sub(pattern, repl, string[, count])

使用repl替换string中每一个匹配的子串后返回替换后的字符串。

当repl是一个字符串时,可以使用\id或\g、\g引用分组,但不能使用编号0。

当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组)。

count用于指定最多替换次数,不指定时全部替换。

re.subn(pattern, repl, string[, count])

返回 (sub(repl, string[, count]), 替换次数)。

Case:

#coding=utf-8

import re

str = "https://i.cnb1logs.co2m/Edi3tPosts.asp4x?opt=999"

pattern=re.compile(r'(\.)')

print '\. :' ,re.sub(pattern,'-',str)

pattern=re.compile(r'\/([^*]+)\/')

print '\/([^*]+)\/ :' ,re.sub(pattern,r'\1',str)

pattern = re.compile(r'(\w+)(\w+)(\d+)')

#先切片测试

print re.split(pattern,str)

print re.sub(pattern,r'\3 \1',str)

#subn统计sub替换次数

print re.subn(pattern,r'\3 \1',str)

Output

\. : https://i-cnb1logs-co2m/Edi3tPosts-asp4x?opt=999

\/([^*]+)\/ : https:/i.cnb1logs.co2mEdi3tPosts.asp4x?opt=999

['https://i.', 'cn', 'b', '1', 'logs.', 'c', 'o', '2', 'm/', 'Ed', 'i', '3', 'tPosts.', 'as', 'p', '4', 'x?opt=', '9', '9', '9', '']

https://i.1 cnlogs.2 cm/3 EdtPosts.4 asx?opt=9 9

('https://i.1 cnlogs.2 cm/3 EdtPosts.4 asx?opt=9 9', 5)

***Repl Closed***

总结

python 正则表达式 sub_python 正则表达式 re.sub re.subn相关推荐

  1. Python中re(正则表达式)模块函数学习

    2019独角兽企业重金招聘Python工程师标准>>> Python正则表达式指南 今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的 ...

  2. python里面的正则表达式_Python中的正则表达式

    以下内容转自:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Pyth ...

  3. [Python]网络爬虫(七):Python中的正则表达式教程(转)

    接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...

  4. [Python]网络爬虫(七):Python中的正则表达式教程

    接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...

  5. 《Python进阶系列》十六:详解Python中的正则表达式

    正则表达式 概述 正则表达式为高级的文本模式匹配.抽取.与/或文本形式的搜索和替换功能提供了基础.简单地说,正则表达式是一些由字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则 ...

  6. python re模块 正则表达式

    正则表达式 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序员们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引 ...

  7. python学习之 ---正则表达式规则与正则表达式在python的应用

    正则表达式 概述 正则表达式30分钟快速入门 正则表达式是文本处理极为重要的技术,用它可以对字符串按照某种规则进行检索,替换 分类 BRE 基本正则表达式,grep.sed.vi等软件支持.vim有扩 ...

  8. 05、Python爬虫之正则表达式常用方法(超全)

    文章目录 前言 一.search()函数 二.match()函数 三.compile()函数 四.findall()函数 五.sub()函数 六.subn()函数 七.split()函数 八.补充说明 ...

  9. python中的正则表达式详解

    一.正则表达式是什么? (急于用正则表达式的朋友可以直接跳过这个部分) ------------------------ 正则表达式(regular expression)描述了一种字符串匹配的模式( ...

最新文章

  1. ASP.NET网页中RAR、DOC、PDF等文件下载功能实例源代码
  2. 2879: [Noi2012]美食节
  3. C语言fputs()函数(把字符串写入到指定的流 stream (文件指针)中)
  4. java 代码重用需要注意的事项_程序员笔记|编写高性能的Java代码需要注意的4个问题...
  5. 默认适应窗口_PS教程基础之cs6默认快捷键汇总及补充
  6. PyCharm专业版 2021.3 Anaconda安装教程
  7. python制作自动按键精灵_Python按键精灵自动化
  8. pyqt:使用qrc文件配置图片资源,生成py文件
  9. 新计算机c盘太小,电脑C盘太小,F盘太大,怎么重新调整分区容量?
  10. python中%s是什么意思_python的%s是什么意思
  11. 组合模型预测模型_改进著名的nfl预测模型
  12. macOS Big Sur 11.2.2 (20D80) 虚拟机 ISO 镜像
  13. 辅助驾驶功能开发-功能规范篇(05)-智能限速辅助SLA
  14. 转贴不说话:陕西芹菜价格创新低 农民开拖拉机自毁芹菜
  15. 图像识别的答题卡计分
  16. 国产化系统改造实践(未完)
  17. 拼多多后台x4.0监控mysql_11、ABPZero系列教程之拼多多卖家工具 拼团提醒功能页面实现...
  18. 八、Docker Swarm
  19. 面试官让我写SQL,我没有写出来
  20. 图文:eclipse中SVN分支合并到主干

热门文章

  1. 25 个精美的后台管理界面模板和布局
  2. kdj买卖指标公式源码_通达信指标公式源码MACD背离KDJ背离指标
  3. hadoop为什么出现
  4. php pcre回溯攻击,php preg_match pcre回溯绕过
  5. sqlserver2000给账户授予所有的权限_你的位置信息权限设置对了么?
  6. mysql blob 比较_与MSSQL对比学习MYSQL的心得(四)--BLOB数据类型
  7. [转载] C Primer Plus 第6章 C控制语句 6.16 编程练习及答案
  8. Java FilePermission getActions()方法与示例
  9. ajax实现两个aspx跳转,请问ajax执行成功后可以跳转到另一个页面吗?
  10. MATLAB元胞自动机报告,元胞自动机概述与MATLAB实现