当前位置: 首页 > news >正文

python re正则表达式

python re正则表达式

regular expression正则表达式,见过用reg exp表示的,等,但是直接用re表示的也是很简洁了。
官网的材料:
https://docs.python.org/zh-cn/2.7/library/re.html#module-re

不管在什么语言中,reg exp都是使用元字符或者一些普通字符前面再加上一个反斜线一起构成一个可以表示一类字符或者字符串的通配式。
reg exp在linux中和三剑客sed、grep、awk在一起使用的最多,在perl存在grep命令、tcl中有regexp和regsub,但是python中把reg exp写成一个库和函数也是给足了对它的重视。

介绍Python中常用的正则表达式处理函数

re.match函数
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。

函数语法:

re.match(pattern, string, flags=0)
函数参数说明:

参数 描述
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 - 可选标志
匹配成功 re.match 方法返回一个匹配的对象,否则返回 None。

实例
#!/usr/bin/python
# -- coding: UTF-8 --

import re
print(re.match(‘www’, ‘www.unoob.com’).span()) # 在起始位置匹配
print(re.match(‘com’, ‘www.unoob.com’)) # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)
None

使用 group(num) 或 groups() 匹配对象函数来获取匹配表达式

匹配对象方法 描述
group(num=0) 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

实例
#!/usr/bin/python
import re

line = “Cats are smarter than dogs”

matchObj = re.match( r’(.) are (.?) .*', line, re.M|re.I)

if matchObj:
print "matchObj.group() : ", matchObj.group()
print "matchObj.group(1) : ", matchObj.group(1)
print "matchObj.group(2) : ", matchObj.group(2)
else:
print “No match!!”
以上实例执行结果如下:

matchObj.group() : Cats are smarter than dogs
matchObj.group(1) : Cats
matchObj.group(2) : smarter

re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

re.search(pattern, string, flags=0)
函数参数说明:

参数 描述
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

匹配成功re.search方法返回一个匹配的对象,否则返回None。

实例

#!/usr/bin/python
import re
 
line = "Cats are smarter than dogs";
 
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
 
if searchObj:
   print "searchObj.group() : ", searchObj.group()
   print "searchObj.group(1) : ", searchObj.group(1)
   print "searchObj.group(2) : ", searchObj.group(2)
else:
   print "Nothing found!!"

以上实例执行结果如下:
searchObj.group() : Cats are smarter than dogs
searchObj.group(1) : Cats
searchObj.group(2) : smarter

re.match与re.search的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

检索和替换
Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。

语法:

re.sub(pattern, repl, string, count=0, flags=0)
参数:

pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

相关文章:

  • 分布式锁—7.Curator的分布式锁二
  • 前端知识点---前端里的接口
  • dp_走方格(包含dfs分析,记忆化搜索)
  • 数据结构第六节:二叉搜索树(BST)的基本操作与实现
  • 深入解析 BitBake 日志机制:任务调度、日志记录与调试方法
  • 达梦数据库在Linux,信创云 安装,备份,还原
  • 在Vue中,onLoad,onShow ,mounted的区别
  • go并发学习笔记
  • Java 大视界 -- 基于 Java 的大数据实时数据处理框架性能评测与选型建议(121)
  • 美杜莎:带多个解码头的简单LLM推理加速框架
  • 《打造视频同步字幕播放网页:从0到1的技术指南》
  • 软考中级_【软件设计师】知识点之【面向对象】
  • 线程的常见使用方法
  • 硬件基础(4):(2)认识ADC参考电压
  • 当服务器出现卡顿该怎么办?
  • MELON的难题
  • 09第三方库的使用
  • 关于无感方波启动预定位阶段
  • PAT乙级真题(2014·冬)
  • JavaWeb-mysql8版本安装