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']

最新文章

  1. C#:获取环境信息
  2. Caused by: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode
  3. 条件变量pthread_cond_t怎么用
  4. sharepoint更新左侧列表的名字
  5. Android课程---课下练习(表格、线性和相对布局)
  6. 1.jquery的变量赋予方式
  7. 简析 addToBackStack使用和Fragment执行流程
  8. 关于CPU Cache -- 程序猿需要知道的那些事
  9. confluence启动关闭
  10. table share
  11. Codeforces Gym 100286I iSharp 水题
  12. 解决WIN8 磁盘100 活动占用100% win8硬盘一直响
  13. 求教jsp 问题,能在一台电脑上运行,不能在另外一台上运行?
  14. C#字符串颠倒输出
  15. Codeforces 286E
  16. 超强、超详细Redis数据库入门教程(转载)
  17. C#生成Code128码
  18. NFS工作原理
  19. .NET(WinCE、WM)转Android开发——Xamarin和Smobiler对比
  20. 搭建个人博客 github+hexo

热门文章

  1. gunicorn的功能及使用方法
  2. zabbix-agent2安装问题汇总
  3. Note Taking App Comparison: Notesnook vs Joplin
  4. SAP 采购订单行项目客制化字段增强
  5. apk文件查看指纹证书方法
  6. CentOS7下MySQL数据的导入和导出
  7. Linux Conda 使用activate无法进入环境,但list中有环境的路径
  8. ipvsadm DR模型的实现方式
  9. 统一单点登录&跳转
  10. Jmeter学习:插件