Python正则

python的正则

查找

贪婪

1
2
3
4
import re

# 尽量满足6
re.findall("[a-z]{3,6}",list)

非贪婪

1
2
3
4
import re

# 尽量满足3
re.findall("[a-z]{3,6}?",list)

.可以匹配除换行(\n)的任意字符

I标志可以忽略大小写

S标志可以匹配任意字符

1
2
re.findall("^test",list,re.I | re.S)
# "|"不是或的意思,在这里表示与

查找并替换

1
2
3
4
5
6
7
#用法一
re.sub("regular","substitute",string)
#用法二
def sub_fun(value):
v = value.group()
return "["+v+"]"
re.sub("regular",sub_fun,string)
1
2
3
4
5
6
7
8
9
# 查找字符开头开头
r = re.match("re",string)
# 在字符里查找到就返回
r2 = re.search("re",string)
# 上面返回的都是Match对象
# group返回查找到的值
print(r.group())
# span返回查找到的位置
print(r2.span())

group

查找到的字符串是一个大组,给group()传递参数可以取得指定的组,不传递参数默认是0(即所有内容),可同时传递多个参数如group(1,2),匹配第一个组和第二个组

1
2
3
4
5
6
7
b = "<h1>Test</h1>"

r3 = re.search("<h1>(.*)</h1>",b)
print(r3.group(1))
# 或者
r3 = re.findall("<h1>(.*)</h1>",b)
print(r3)

groups()可直接得到里面的分组的数据而不需要传递参数,当然findall更方便

作者

manu

发布于

2020-03-29

更新于

2023-01-06

许可协议

# 相关文章
  1.pythonic
  2.装饰器
  3.函数编程
  4.异常处理
  5.文件IO
  6.
  7.使用模块简化代码
  8.简单使用方法
# 推荐文章
  1.ALTER
  2.数据库笔记
  3.微信小程序笔记
  4.动态调试-OD
  5.winPE结构
  6.git指令

:D 一言句子获取中...