码迷,mamicode.com
首页 > 其他好文 > 详细

re模块

时间:2018-01-16 18:32:39      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:unicode   span   就是   height   flags   lag   模型   有一个   inf   

正则表达式

正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

  • 给定的字符串是否符合正则表达式的过滤逻辑(“匹配”);
  • 通过正则表达式,从文本字符串中获取我们想要的特定部分(“过滤”)。

技术分享图片

正则表达式匹配规则

技术分享图片

python中的re模块

pattern = re.compile(r"\d")   # r表示字符串不受\n,\d,\w等转义字符影响,u表示是unicode字符串

pattern.match(str,begin,end)	# 起始位置,终止位置(是以切片的形式顾头不顾尾)    
# 从起始位置开始往后找,返回第一个符合规则的(返回的是match对象),只匹配一次

pattern.search(str,begin,end)
# 从随机位置开始往后找,返回第一个符合规则的(返回的也是match对象),只匹配一次

pattern.findall(str,begin,end)
# 匹配全部字符串,返回列表

pattern.split(str,count)	# 切割次数
# 分割字符串

pattern.sub(‘替换文字‘,"字符串")

re.I ==> 忽略大小写    re.S ==> 全文匹配

用法

match:从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None

1)match(模式,搜索字符串,匹配模式)

>>> r = re.match("\d+",‘1234sdacsazc‘)
>>> r.group()
‘1234‘
>>> r.group(0)
‘1234‘

2)pattern=re.compile(模式)

  m=pattern.match("查询字符串")

技术分享图片

技术分享图片

search:浏览整个字符串去匹配第一个,未匹配成功返回None

search(pattern, string, flags=0)

# pattern: 正则模型
# string : 要匹配的字符串
# flags  : 匹配模式

技术分享图片

findall:获取非重复的匹配列表;如果有一个组则以列表形式返回,且每一个匹配均是字符串;如果模型中有多个组,则以列表形式返回,且每一个匹配均是元祖;

findall(pattern, string, flags=0)

# pattern: 正则模型
# string : 要匹配的字符串
# flags  : 匹配模式

技术分享图片

技术分享图片

split:根据正则匹配分割字符串

split(pattern, string, maxsplit=0, flags=0)
# pattern: 正则模型
# string : 要匹配的字符串
# maxsplit:指定分割个数
# flags  : 匹配模式

技术分享图片

sub:替换匹配成功的指定位置字符串

sub(pattern, repl, string, count=0, flags=0)
# pattern: 正则模型
# repl   : 要替换的字符串或可执行对象
# string : 要匹配的字符串
# count  : 指定匹配个数
# flags  : 匹配模式

技术分享图片

技术分享图片

re模块

标签:unicode   span   就是   height   flags   lag   模型   有一个   inf   

原文地址:https://www.cnblogs.com/x54256/p/8296398.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!