python正则表达式
来源:互联网 发布:无间道 港片 知乎 编辑:程序博客网 时间:2024/05/17 02:28
正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。很多编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同。
它拥有自己独特的语法以及一个独立的处理引擎,在提供了正则表达式的语言里,正则表达式的语法都是一样的。
Python通过re模块提供对正则表达式的支持。
示例1:
#coding=utf-8
#导入re模块
import re
# 将正则表达式编译成Pattern对象,注意hello前面的r的意思是“原生字符串”
pattern = re.compile(r'hello')
# 使用Pattern匹配文本,获得匹配结果,无法匹配时将返回None
match1 = pattern.match('hello world!')
match2 = pattern.match('helloo world!')
match3 = pattern.match('helllo world!')
#如果match1匹配成功
if match1:
# 使用Match获得分组信息
print match1.group()
else:
print'match1匹配失败!'
#如果match2匹配成功
if match2:
# 使用Match获得分组信息
print match2.group()
else:
print'match2匹配失败!'
#如果match3匹配成功
if match3:
# 使用Match获得分组信息
print match3.group()
else:
print'match3匹配失败!'
输出如下:
hello
hello
match3匹配失败!
SPLIT函数
#coding=utf-8
import re
p = re.compile(r'\d+')
print p.split('one1two2three3four4')
re.compile(strPattern[, flag])
这个方法是Pattern类的工厂方法,用于将字符串形式的正则表达式编译为Pattern对象。
第二个参数flag是匹配模式,取值可以使用按位或运算符'|'表示同时生效,比如re.I | re.M。
另外,你也可以在regex字符串中指定模式,
比如re.compile('pattern', re.I | re.M)与re.compile('(?im)pattern')是等价的。
可选值有:
re.I(全拼:IGNORECASE):忽略大小写(括号内是完整写法)
re.M(全拼:MULTILINE):多行模式,改变'^'和'$'的行为
re.S(全拼:DOTALL):点任意匹配模式,改变'.'的行为
re.L(全拼:LOCALE):使预定字符类 \w \W \b \B \s \S 取决于当前区域设定
re.U(全拼:UNICODE):使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性
re.X(全拼:VERBOSE):详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。
re模块还提供了一个方法escape(string),用于将string中的正则表达式元字符如*/+/?等之前加上转义符再返回
- python正则表达式学习
- c++正则表达式,python
- Python正则表达式(一)
- python的正则表达式
- Python正则表达式
- Python初学-正则表达式
- 正则表达式与python
- python正则表达式学习
- python正则表达式学习
- python正则表达式学习
- python正则表达式
- Python - 正则表达式
- Python正则表达式
- python正则表达式
- Python正则表达式指南
- Python正则表达式指南
- Python 正则表达式指南
- python 正则表达式
- 程序员为什么都穿得那么丑
- URAL 1099 Work Scheduling(带花树)
- 设计模式-抽象工厂
- EasyDemo*JavaSE 基础知识点体系结构图(download pic Thx)
- StringUtils的isBlank与isEmply
- python正则表达式
- POJ 1161 The Suspects 并查集
- Linux USB 摄像头驱动
- bootstrap------3------
- GitHub 上 11 月份最热门的开源项目
- mysql之TIMESTAMP(时间戳)用法详解
- php判断指定文件夹里是否含有子文件
- 表单2-内联表单
- 基于RBAC权限学习记录