Python - re - 正则表达式 - 怎么用
<python cookbook> - 1.18 - 一次完成多个替换
这个blog介绍正则,写得不错,而且,一如既往的‘长’。
1. re.escape(string)
THIS,说明函数的用法、实际用途。
# 1. 基本用法 >>> import re
>>> strTest = 'abcdefg'
>>> re.escape(strTest)
'abcdefg'
>>> strTest = 'abcdefg()\4'
>>> re.escape(strTest)
'abcdefg\\(\\)\\\x04'
# 2. figure out this: '|'.join(map(re.escape, adict)) >>> dictTest = {'a':'', 'b':'', 'c':'*', 'd':'$'}
>>> re.escape(dictTest)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/re.py", line 214, in escape
return pattern[:0].join(s)
TypeError: unhashable type
>>> map(re.escape, dictTest)
['a', 'c', 'b', 'd']
>>> '|'.join(map(re.escape, dictTest))
'a|c|b|d' # 注意到上面的格式是用'|'连接的,简单地说,'|'可以连接多个规则pattern
2. re.compile()
THIS - 简单地说明怎么用。
>>> rx = re.compile('|'.join(map(re.escape, dictTest)))
>>> rx
<_sre.SRE_Pattern object at 0x852fb80>
3. group([group1, ...])
THIS - 简单地说明怎么用。
# 链接中的事例,简单说,一个(),就是一个group >>> m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
>>> m.group(0) # The entire match
'Isaac Newton'
>>> m.group(1) # The first parenthesized subgroup.
'Isaac'
>>> m.group(2) # The second parenthesized subgroup.
'Newton'
>>> m.group(1, 2) # Multiple arguments give us a tuple.
('Isaac', 'Newton')
4. re.sub
THIS - 简单地说明怎么用。
5. 理解所有 : 一次完成多个替换
import re
def multiple_replace(text, adict):
rx = re.compile('|'.join(map(re.escape, adict)))
def one_xlat(match):
return adict[match.group(0)]
return rx.sub(one_xlat, text)
6. Python - 闭包
1. Look at THIS
2.
# This definitely is closure.
def addx(x):
def addy(y): return x+y
return addy print 'addx(x):', addx(1)(1) # Is this closure??
def addxy(x, y):
def addy(y): return x+y
return 0+addy(y) print 'addxy(x, y): %d' % (addxy(1, 1))
END
Python - re - 正则表达式 - 怎么用的更多相关文章
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- Python 进阶 - 正则表达式
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- python study - 正则表达式
第 7 章 正则表达式 7.1. 概览 7.2. 个案研究:街道地址 7.3. 个案研究:罗马字母 7.3.1. 校验千位数 7.3.2. 校验百位数 7.4. 使用 {n,m} 语法 7.4.1. ...
- python使用正则表达式文本替换
2D客户端编程从某种意义上来讲就是素材组织,所以,图片素材组织经常需要批量处理,python一定是最佳选择,不管是win/linux/mac都有一个简单的运行环境 举两个应用场景: 如果不是在某个文件 ...
- python的正则表达式 re
python的正则表达式 re 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一 ...
- Python之正则表达式(re模块)
本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 正则表达式(Regluar Expressions)又称规则 ...
- Python:正则表达式详解
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...
- 【Python】正则表达式纯代码极简教程
<Python3正则表达式>文字版详细教程链接:https://www.cnblogs.com/leejack/p/9189796.html ''' 内容:Python3正则表达式 日期: ...
- 【Python】正则表达式简单教程
说明:本文主要是根据廖雪峰网站的正则表达式教程学习,并根据需要做了少许修改,此处记录下来以备后续查看. <Python正则表达式纯代码极简教程>链接:https://www.cnblogs ...
- 【转】Python之正则表达式(re模块)
[转]Python之正则表达式(re模块) 本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 参考文档 提示: ...
随机推荐
- execl执行解释器文件以及shell命令
问题描述: execl执行解释器文件以及shell命令 问题解决: 具体源文件:
- 物理地址 = 段地址*10H + 偏移地址
程序如何执行: CPU先找到程序在内存中的入口地址 -- 地址总线 (8086有20根地址总线,每一根可以某一时传0或1, 20位的二进制数字可以表示的不同的数字的个数是2^20=1048576 10 ...
- 【WCF--初入江湖】07 分布式事务
07 分布式事务 一.前言 [1]理解事务特性 [2]掌握TransactionFlow 特性 [3]掌握WCF中的事务属性 TransactionAutoCompleteOnSessionClose ...
- Unity3D脚本中文系列教程(一)
原地址:http://dong2008hong.blog.163.com/blog/static/46968827201403115643431/?suggestedreading&wumii ...
- Test a ; vs Test a( ) ;
一. Test a(); Test a; //前提声明了Test类 前者声明一个返回值为Test,名为a的函数,后者声明了Test类的一个对象(把Test当成int) struct Test{ ...
- Java Socket文件上传
客户端: import java.io.FileInputStream; import java.net.Socket; /** * Created by 290248126 on 14-5-11. ...
- Spark安装部署
原创文章,转载请注明: 转载自www.cnblogs.com/tovin/p/3820979.html 一.系统环境配置 参照http://www.cnblogs.com/tovin/p/381890 ...
- Error: The VPN client agent was unable to create the interprocess communication depot.
当安装Cisco AnyConnect VPN Client出现The VPN client agent was unable to create the interprocess communica ...
- 重写equals()方法时,需要同时重写hashCode()方法
package com.wangzhu.map; import java.util.HashMap; /** * hashCode方法的主要作用是为了配合基于散列的集合一起正常运行,<br/&g ...
- linux软中断与硬中断实现原理概述
linux软中断与硬中断实现原理概述. 1.软中断通过open_softirq注册一个软中断处理函数,即在软中断向量表softirq_vec数组中添加新的软中断处理action函数. 2.调用rais ...