乐趣区

关于python:Python3常用正则表达式

罕用函数:

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)



退出移动版