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

re正则表达式

时间:2017-06-30 14:08:22      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:pil   one   gif   用法   .com   div   images   hello   取消   

正则表达式

re  regular expression ,regex,RE

正则表达式是用来简洁表达一组字符串的表达式,正则表达式是一种针对字符串表达“简洁”和“特征”的工具。

用途:

  • 表达文本类型的特征
  • 同时查找或替换一组字符串
  • 匹配字符串的全部或部分  最主要应用于字符串的匹配

Python导入re库

import re

正则表达式的使用,需要编译

编译:将符合正则表达式语法的字符串转换成正则表达式特征

re.compile()

常用表达式

技术分享

re库的使用

re库使用raw string(原生字符串)来表示正则表达式,表示为:

r‘text‘

原生字符串:不包含对转义符再次转义的字符串

re库的主要功能函数

re.search()      返回match对象

re.match     ,从字符串开头进行匹配,返回match对象

re.findall    返回列表对象,返回全部符合匹配的子串

re.finditer  返回一个匹配结果的迭代类型,每一个迭代类型都是一个match对象

re.split()   将一个字符串按照正则表达式匹配结果进行分割,返回列表类型

re.search(pattern,string,flags=0)

pattern:正则表达式的字符串或者原生字符串表示

string:待匹配的字符串

flags:正则表达式的使用的控制标记  re.I :忽视大小写  re.M  :吧字符串的每一行当做开头进行匹配  re.S  操作符匹配所有字符,默认匹配除换行符之外的所有字符。

re库的另一种等价用法:

regex=re.compile(r‘[1-9]\d{5}‘)

regex.search(‘BIT 100081‘)

等价于

rst=re.search(r‘[1-9]\d{5}‘,‘BIT 100081‘)

 分组()

?P<>   给分组起名字

?:      取消分组的优先级

技术分享
import re
print(re.findall("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>","<h1>hello</h1>"))
print(re.search("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>","<h1>hello</h1>"))
r=re.findall(r"<(?:\w+)>\w+</\w+>","<h1>hello</h1>")
print(r)



》》》[h1]
》》》<_sre.SRE_Match object; span=(0, 14), match=<h1>hello</h1>>
》》》[<h1>hello</h1>]
View Code

 

re正则表达式

标签:pil   one   gif   用法   .com   div   images   hello   取消   

原文地址:http://www.cnblogs.com/yuyang26/p/7072776.html

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