在上一篇文章
Python之正则表达式基础语法
中我们简单的学习了正则表达式的一些基础语法,今天这篇文章将讲一下python如何使用正则表达式,它有那些方法。
正则表达式模块(re)内容
re模块是python的一个库,里面有很多方法可以对正则表达式进行运用。
re.search(pattern,string,flags = 0)
有哪些值:
注:下面方法中的同名参数和上述介绍的参数意思一样,将不再过多的解释。
作用:从左到右扫描整个字符串 返回第一个与正则表达式匹配的对象,如果没有匹配成功就返回
比如: 查找 字符串中 CodeId 第一次出现的位置
注:返回的为匹配对象,其中是返回开始匹配的位置索引。由此我们可以猜到应该是返回匹配结束时的位置索引。
re.match(pattern,string,flags = 0 )
作用:查找字符串开头的零个或几个字符是否与正则表达式匹配,如果成功则返回相应的匹配对象,否则返回
比如:判断 python变量 的开头是否是数字。
注意:只会匹配字符串的开头,即使在(多行)模式下,也不会匹配每行的开头。
re.fullmatch(pattern,string,flags = 0 )
作用:如果整个字符串都与正则表达式匹配,则返回相应的匹配对象,否则返回
比如:判断输入的邮箱是否合法
注:是匹配对象的一个方法,作用是:返回匹配的所有子串。后面会进行详细介绍。
re.split(pattern,string,maxsplit = 0,flags = 0 )
作用:以字符串中与正则表达式匹配的子串,为分隔符,对字符串进行分割。返回分割之后的列表。
比如:把英文句子分割为单词组成的列表
参数为最大分割次数,默认是表示无限分割。
注意:如果在正则表达式中使用组括号,则正则表达式中所有组的文本也会作为结果列表的一部分返回。
re.findall(pattern,string,flags = 0 )
作用:从左到右对字符串进行扫描,以列表的形式返回所有与正则表达式匹配的子串。
比如:匹配一句话中所有的带小数点的数
注意:如果正则表达式中存在一个组,则返回组列表; 如果正则表达式中有多个组,这将是一个元组列表。
re.finditer(pattern,string,flags = 0)
作用:从左到右对字符串进行扫描,以迭代器的形式返回所有与正则表达式匹配的子串。
比如:上面的例子 ,换成以迭代器的形式返回
re.sub(pattern,repl,string,count = 0,flags = 0)
作用:把字符串中与正则表达式匹配的子串替换为。可以是一个字符串也可以是一个函数。
是一个字符串时,可以处理任何转义字符
比如:
处理普通字符串
反向引用
注:除了上述的字符转义和反向引用外, 使用还可以引用那些使用语法定义的组。同时等价于,在替代方法中表达的更加清楚。后面会进行举例。
反向引用替换正则表达式中匹配的整个子串。
是一个函数时,这个函数的参数是一个单匹配对象,并返回一个替换的字符串。
比如:
参数用于控制最大替换次数。必须是一个非负整数。如果省略或为零,则所有匹配的都将被替换。比如:
re.subn(pattern,repl,string,count = 0,flags = 0)
作用:和一样,只是返回的是一个元组。元组里面的内容包括替换后的字符串,和替换的次数
比如:
re.escape(pattern)
作用:对字符串中的特殊字符加上转义,也就是在每个特殊字符前面加上
比如:
re.purge()
作用:清除正则表达式缓存。
re.compile(pattern,flags = 0)
作用:把一个正则表达式编译为正则表达式对象,它可用于匹配,以及其他方法。
比如:
注:正则表达式对象的匹配方法和上面介绍的模块级匹配方法 在得到效果上是一样的,但是效率上有所不同,是对正则表达式进行一次编译,然后保存便以后重用,适合那些单个程序中多次使用的正则表达式。
正则表达式对象的方法在参数上和上面的方法有些不同。比如:。
参数用于设置字符串在什么位置开始匹配。
参数用于设置字符串最长的匹配距离。
其他的所有方法和上面差不多 不在细讲,可以查看了解更多详细的内容。
匹配对象(Match)
匹配对象的布尔值始终返回。 由于和在没有匹配时返回,因此我们可以通过测试是否是匹配对象。比如:
Match.expand(template)
作用:把模板字符串中指定的位置 替换为 指定组的内容。中可以使用、或引用分组,但不能使用编号。与是等价的;如果你想表达之后是字符,只能使用,因为将被认为是第个分组。
比如:匹配日期
Match.group([ group1,… ] )
作用:返回匹配的一个或多个子组。其中如果有一个参数,结果是返回一个单一的字符串;如果有多个参数,则结果是返回每个参数对应的组内容 组成的 元组。没有参数,默认为(整个匹配结果被返回)。如果参数为零,则相应的返回值是整个匹配的字符串比如:
如果组编号为负数或大于正则表达式中定义的组数,则会引发异常。
如果正则表达式使用语法,则参数也可以是通过其组名称来访问组内容。
如果一个组匹配多次,只能访问最后一次匹配。
注:返回结果还可以通过数组的方式来访问,这得益于方法,它是在 版本中新加的。
Match.groups(default=None)
作用:从开始,返回一个包含匹配所有子组的元组。参数为那些没有匹配成功的子组设置默认值。没有参数时默认是.
比如:匹配浮点数
Match.groupdict(default=None)
作用:对于使用语法的所有子组,以字典的形式返回。默认参数用于那些没有匹配成功的子组; 它默认为
Match.start([group])和Match.end([group])
作用:返回按组匹配子串的开始和结束索引; 组默认为零(意味着整个匹配的子字符串)。如果组没有匹配成功则返回。
比如:
Match.span([group])
作用:返回一个由匹配子组的开始和结束组成的元组。如果分组没有成功匹配,返回(-1,-1)。
比如:
领取专属 10元无门槛券
私享最新 技术干货