Python强化知识之正则表达式(三)

常用的正则表达式操作符

在这里插入图片描述

在这里插入图片描述

Re库

则表达式(英文名称:regular expression,regex,RE)是用来简洁表达一组字符串特征的表达式。最主要应用在字符串匹配中。

模式介绍:

1).re.I(re.IGNORECASE): 忽略大小写

2).re.M(MULTILINE): 多行模式,改变’^‘和’$‘的行为

3).re.S(DOTALL): 点任意匹配模式,改变’.'的行为

4).re.L(LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定

5).re.U(UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性

6).re.X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释

函数介绍:
在这里插入图片描述

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

在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象。

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

string:待匹配字符串

flags:正则表达式使用时的控制标记,哪个模式

第一种:

# -*- coding = utf-8 -*-
import re
# 创建模式对象
pat = re.compile("aa") # 此处的aa是正则表达式

reh = pat.search("aaa") # search后的字符串是被校验的字符串
print(reh)
# <re.Match object; span=(0, 2), match='aa'>

第二种:

pat = re.search("aa","aaa")
print(pat)       
# <re.Match object; span=(0, 2), match='aa'>    

2、re.match(pattern,string,flags=0)

从一个字符串的开始位置起匹配正则表达式,返回match对象。

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

string:待匹配字符串

flags:正则表达式使用时的控制标记

第一种:

pat = re.match("a","aaaa")
print(pat)  
# <re.Match object; span=(0, 1), match='a'>  

第二种:

pat = re.compile("a")
p = pat.match("aaaa")
print(p)
# <re.Match object; span=(0, 1), match='a'>

3、re.findall(pattern,string,flags=0)

搜索字符串,以列表类型返回全部能匹配的子串。

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

string:待匹配字符串

flags:正则表达式使用时的控制标记

第一种:

pat = re.findall("a","aassaaddd");
print(pat)     
# ['a', 'a', 'a', 'a']     

第二种:

# 创建模式对象
pat = re.compile("a") # 此处的aa是正则表达式

re = pat.findall("aassaaddd") # search后的字符串是被校验的字符串
print(re)

4、re.split(pattern,string,maxsplit=0,flags=0)

搜索字符串,以列表类型返回全部能匹配的子串。

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

string:待匹配字符串

maxsplit:最大分割数,剩余部分作为最后一个元素输出

flags:正则表达式使用时的控制标记

第一种:

pat = re.split("a","hadhks",2)
print(pat)
# ['h', 'dhks']

5、re.finditer(pattern,string,flags=0)

搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象。

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

string:待匹配字符串

flags:正则表达式使用时的控制标记

第一种:

pat = re.finditer("a","aabbss")
for i in pat:
    print(i)
# <re.Match object; span=(0, 1), match='a'>
# <re.Match object; span=(1, 2), match='a'>

6、re.sub(pattern,repl,string,count=0,flags=0)

在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串。

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

repl:替换匹配字符串的字符串

string:待匹配字符串

count:匹配的最大替换次数

flags:正则表达式使用时的控制标记

第一种:

pat = re.sub("a","b","aaaadddvvv",5)
print(pat)  
# bbbbdddvvv   

Re库的另一种等价用法:

函数式用法:一次性操作

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

面向对象用法:编译后的多次操作

pat = re.compile(r'[1-9]\d{5}')
rst = pat.search('BIT 100081')
regex = re.comile(pattern,flags=0)

将正则表达式的字符串形式编译成正则表达式对象

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

flags:正则表达式使用时的控制标记

regex 才是正则表达式:regex = re.compile(r’[1-9]\d{5}’)

在匹配的字符串前加上r就可以避免转义字符

s = r"'ssssss\'"
print(s)
# 'ssssss\'

猜你喜欢

转载自blog.csdn.net/weixin_42272869/article/details/113786457