python 中的 re.compile 函数

 

正则表达式功能十分强大。

“有些人面临一个问题时会想:‘我知道,可以用正则表达式来解决这个问题。’于是现在他们就有两个问题了”——Jamie Zawinski

同时正则表达式很难掌握。

正则表达式的各种规则就不在此赘述了,以下介绍在python的re模块中怎样应用正则表达式

1. 使用re.compile

re模块中包含一个重要函数是compile(pattern [, flags]) ,该函数根据包含的正则表达式的字符串创建模式对象。可以实现更有效率的匹配。在直接使用字符串表示的正则表达式进行search,match和findall操作时,python会将字符串转换为正则表达式对象。而使用compile完成一次转换之后,在每次使用模式的时候就不用重复转换。当然,使用re.compile()函数进行转换后,re.search(pattern, string)的调用方式就转换为 pattern.search(string)的调用方式。

其中,后一种调用方式中,pattern是用compile创建的模式对象。如下:

>>> import re
>>> some_text = 'a,b,,,,c d'
>>> reObj = re.compile('[, ]+')
>>> reObj.split(some_text)
['a', 'b', 'c', 'd']

2.不使用re.compile

在进行search,match等操作前不适用compile函数,会导致重复使用模式时,需要对模式进行重复的转换。降低匹配速度。而此种方法的调用方式,更为直观。如下:

>>> import re
>>> some_text = 'a,b,,,,c d'
>>> re.split('[, ]+',some_text)
['a', 'b', 'c', 'd']

python 中的 re.compile 函数的更多相关文章

  1. python 中的 re.compile 函数(转)

    1. 使用re.compile re模块中包含一个重要函数是compile(pattern [, flags]) ,该函数根据包含的正则表达式的字符串创建模式对象.可以实现更有效率的匹配.在直接使用字 ...

  2. Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted

    1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...

  3. Python中的高阶函数与匿名函数

    Python中的高阶函数与匿名函数 高阶函数 高阶函数就是把函数当做参数传递的一种函数.其与C#中的委托有点相似,个人认为. def add(x,y,f): return f( x)+ f( y) p ...

  4. python中enumerate()函数用法

    python中enumerate()函数用法 先出一个题目:1.有一 list= [1, 2, 3, 4, 5, 6]  请打印输出:0, 1 1, 2 2, 3 3, 4 4, 5 5, 6 打印输 ...

  5. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  6. Python中sort和sorted函数代码解析

    Python中sort和sorted函数代码解析 本文研究的主要是Python中sort和sorted函数的相关内容,具体如下. 一.sort函数 sort函数是序列的内部函数 函数原型: L.sor ...

  7. Python中进制转换函数的使用

    Python中进制转换函数的使用 关于Python中几个进制转换的函数使用方法,做一个简单的使用方法的介绍,我们常用的进制转换函数常用的就是int()(其他进制转换到十进制).bin()(十进制转换到 ...

  8. Python中的内置函数

    2.1 Built-in Functions The Python interpreter has a number of functions built into it that are alway ...

  9. python中的内置函数(一), lambda, filter, map

    https://www.processon.com/view/link/5c10da0ce4b099ae3e137bf6 1.内置函数 内置函数就是python中提供的,可以直接拿来用的函数,比如pr ...

  10. python正则表达式re之compile函数解析

    re正则表达式模块还包括一些有用的操作正则表达式的函数.下面主要介绍compile函数. 定义: compile(pattern[,flags] ) 根据包含正则表达式的字符串创建模式对象. 通过py ...

随机推荐

  1. Word18 制作家长会通知office真题

    1.课程的讲解之前,先来对题目进行分析,首先需要在考生文件夹下,将Wrod素材.docx文件另存为Word.docx,后续操作均基于此文件,否则不得分. 2.这一步非常的简单,打开下载素材文件,在[文 ...

  2. SFTP实现密钥登陆并上传文件

    什么是SFTP,公开键认证,SFTP可不是FTP协议的扩展,他是基于SSH的文件传输协议. 而当SFTP服务器登录有客户端的公开键时,客户端就可以用自己的私有键去跟服务器握手(handshake)已实 ...

  3. vue框架回顾

  4. vue框架4

    购物车案例 v-model进阶 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  5. nacos启动报错

    Caused by: com.alibaba.nacos.api.exception.NacosException: Nacos Server did not start because dumpse ...

  6. linux 内存泄漏检测原理及实现

    通过检测内存块是否被引用,而判断内存是否泄漏 参考链接:https://mp.weixin.qq.com/s/_WTpg2rnqIJDRKo-UcfeFA

  7. API 文档

    API 文档 Java类的组织形式 使用API查找方法: 包 -> 类 -> 方法 直接检索:Math

  8. 题解[HEOI2013]SAO.md

    题意 给定一棵树,边有方向.要给点重标号,使得边都由小编号指向大编号,求重标号方案数. \(n\le10^5\) 思路 有关树的计数.套路性考虑树形 DP. 设计状态 \(f_{u}\) 表示 \(u ...

  9. gcc_to_use

    gcc 目录 gcc 概要 基本指令及功能(以gcc为例) gcc -gdb gcc -cmake 概要 GCC:GNU Compiler Collection(GUN 编译器集合),是GNU项目中符 ...

  10. 常用得cron表达式

    0 10 0 1 * ? //每月1号的0:10:00执行 0 01 00 28-31 * ? #月底最后一天早上凌晨1点执行 异常: 查询是否有特殊字符: cat -A ***.sh 解决方法: 1 ...