re正则表达式

Posted dragonbird

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re正则表达式相关的知识,希望对你有一定的参考价值。

正则表达式

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正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式

第43天python学习re模块学习

python成长之路第三篇_正则表达式

python成长之路第三篇_正则表达式

俗话:学好正则表达式,走遍天下都没事!最详细的正则入门教程!

python基础学习(十三)