python的正则
查找
贪婪
1 2 3 4
| import re
re.findall("[a-z]{3,6}",list)
|
非贪婪
1 2 3 4
| import re
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)
|
match,search
1 2 3 4 5 6 7 8 9
| r = re.match("re",string)
r2 = re.search("re",string)
print(r.group())
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更方便