共计 1321 个字符,预计需要花费 4 分钟才能阅读完成。
罕用函数:
1.re.match 开始地位匹配, 没有匹配到就返回 (即便正则表达式没有用 ^ 申明匹配结尾)
input="入门小站"
#P<name> 分组命名
reg=re.compile(r'(?P<name> 入门)')
res=reg.match(input)
if res:
print(res.groupdict())
print(res.groups())
print(res.groups())
{'name': '入门'}
('入门',)
('入门',)
2.re.search 搜寻整个字符串
# 扫描整个 字符串 找到匹配款式的第一个地位,并返回一个相应的 匹配对象。如果没有匹配,就返回一个 None
input='''
入门小站
入门
入门教程
'''reg=re.compile(r' 入门 (?: 小站 | 教程)',re.S)
res=reg.search(input)
if res:
print(res.group())
入门小站
3.re.findall 查找到字符串所有的匹配项,并返回一个 list
input='''
入门小站
入门
入门教程
'''
# re.M 多行模式匹配
reg=re.compile(r'^ 入门 (?: 小站 | 教程)$',re.M)
res=reg.findall(input)
if res:
print(res)
['入门小站', '入门教程']
4.re.split 字符串宰割
# split(pattern, string, maxsplit=0, flags=0)
# maxsplit 最大的宰割次数
input='''
入门
123
小站
dd
入门
'''reg=re.compile(r'[a-z0-9]+')
res=reg.split(input)
print(res)
reg=re.compile(r'[a-z0-9]+')
res=reg.split(input,1)
print(res)
['\n 入门 \n', '\n 小站 \n', '\n 入门 \n']
['\n 入门 \n', '\n 小站 \ndd\n 入门 \n']
5. re.sub 字符串替换
# 语法 sub(pattern, repl, string, count=0, flags=0)
# repl 被替换成的字符串
# count 指定替换的次数
input='''
入门
123
小站
456
dd
入门
'''reg=re.compile(r'([a-z0-9]{1,})',re.M)
res=reg.sub('11',input)
print(res)
# 替换 1 次
reg=re.compile(r'([a-z0-9]{1,})',re.M)
res=reg.sub('11',input,1)
print(res)
入门
11
小站
11
11
入门
入门
11
小站
456
dd
入门
6. re.subn
# 语法 subn(pattern, repl, string, count=0, flags=0)
# repl 被替换成的字符串
# count 指定替换的次数
# 返回后果中蕴含替换的次数
input='''
入门
123
小站
456
dd
入门
'''reg=re.compile(r'([a-z0-9]{1,})',re.M)
res=reg.subn('11',input)
print(res)
('\n 入门 \n11\n 小站 \n11\n11\n 入门 \n', 3)
正文完