python正则表达式re模块详解


Posted in Python onJune 25, 2014

快速入门

import re

pattern = 'this'
text = 'Does this text match the pattern?'

match = re.search(pattern, text)

s = match.start()
e = match.end()

print('Found "{0}"\nin "{1}"'.format(match.re.pattern, match.string))
print('from {0} to {1} ("{2}")'.format( s, e, text[s:e]))

执行结果:

#python re_simple_match.py 
Found "this"
in "Does this text match the pattern?"
from 5 to 9 ("this")
import re

# Precompile the patterns
regexes = [ re.compile(p) for p in ('this', 'that')]
text = 'Does this text match the pattern?'

print('Text: {0}\n'.format(text))

for regex in regexes:
  if regex.search(text):
    result = 'match!'
  else:
    result = 'no match!'
    
  print('Seeking "{0}" -> {1}'.format(regex.pattern, result))

执行结果:

#python re_simple_compiled.py 
Text: Does this text match the pattern?

Seeking "this" -> match!
Seeking "that" -> no match!

import re

text = 'abbaaabbbbaaaaa'

pattern = 'ab'

for match in re.findall(pattern, text):
  print('Found "{0}"'.format(match))

执行结果:

#python re_findall.py 
Found "ab"
Found "ab"

import re

text = 'abbaaabbbbaaaaa'

pattern = 'ab'

for match in re.finditer(pattern, text):
  s = match.start()
  e = match.end()
  print('Found "{0}" at {1}:{2}'.format(text[s:e], s, e))

执行结果:

#python re_finditer.py 
Found "ab" at 0:2
Found "ab" at 5:7
Python 相关文章推荐
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
python验证码识别的示例代码
Sep 21 Python
Python算法之求n个节点不同二叉树个数
Oct 27 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
Python 创建空的list,以及append用法讲解
May 04 Python
pytorch + visdom 处理简单分类问题的示例
Jun 04 Python
python中的字符串内部换行方法
Jul 19 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
新手学python应该下哪个版本
Jun 11 Python
Python通过websocket与js客户端通信示例分析
Jun 25 #Python
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 #Python
Python中文编码那些事
Jun 25 #Python
教你如何在Django 1.6中正确使用 Signal
Jun 22 #Python
python抓取网页时字符集转换问题处理方案分享
Jun 19 #Python
python在linux中输出带颜色的文字的方法
Jun 19 #Python
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 #Python
You might like
php 获取select下拉列表框的值
2010/05/08 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
php中chdir()函数用法实例
2014/11/13 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
用正则表达式替换图片地址img标签
2013/11/22 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
ionic环境配置及问题详解
2017/06/27 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
python select.select模块通信全过程解析
2017/09/20 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
简单了解如何封装自己的Python包
2020/07/08 Python
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
什么是数组名
2012/05/10 面试题
EJB的角色和三个对象
2015/12/31 面试题
应届生污水处理求职信
2013/11/06 职场文书
学习经验演讲稿
2014/05/10 职场文书
小学数学课题方案
2014/06/15 职场文书
设计专业自荐信
2014/06/19 职场文书
义诊活动总结
2015/02/04 职场文书
小学教师岗位职责
2015/04/02 职场文书
停水通知
2015/04/16 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS