calvin-zhang
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#re.findall 在字符串中找到正则表达式所匹配的所有字符串,并返回一个列表,如果没有找到匹配的,则返回空列表
#re.match 从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none
#re.search 扫描整个字符串并返回第一个成功的匹配
import re
a=re.findall("calvin","123456kb24calvinaw")
b=re.findall("calvin.w","123456kb24calvinaw")
c=re.findall("^calvin","666888kb^calvinaw")
d=re.findall("calvin(ab)","666888kb^calvinab")
e=re.search("calvin(ab)","666888kb^calvinab24calvinab").group()
f=re.match("calvin","666calvinab24calvinab")
#[]用来表示一组字符,匹配[]中的一个
g=re.findall("calvin[ab]","666888kb^calvinb")
#{n,m}匹配n到m次前面的正则表达式定义的片段,贪婪方式
h=re.findall("calvina{0,1}","666888kb^calvinkab")
#\d匹配任意数字,\s匹配任意空白字符,\w匹配数字,字母,下划线
i=re.findall("\d|\s|\w","666888kb^calvink ab_")
#?匹配0个或者1个
j=re.findall("calvina?","666888kb^calvinkab")
#+匹配1个或者多个
k=re.findall("calvina+","666888kb^calvinab")
print(d)
print(e)
print(f)
print(g)
print(h)
print(i)
print(j)
print(k)


#无分组
re_str="hello kobe calvin byrant 24 calvin"
rm=re.match("h\w+",re_str)
print(rm.group()) #获取匹配到的所有结果
print(rm.groups()) #获取模型中匹配到的分组结果
print(rm.groupdict()) #获取模型中匹配到的分组中所有执行了key的组
#有分组,提取匹配成功的指定内容(先匹配全部正则,再匹配成功的局部内容提取出来)
rm=re.match("(?P<k1>h)(\w+)",re_str)
print(rm.group()) #获取匹配到的所有结果
print(rm.groups()) #获取模型中匹配到的分组结果
print(rm.groupdict()) #获取模型中匹配到的分组中所有执行了key的组

#re.search与re.match类似
re_str="hello kobe calvin byrant 24 calvin"
rm1=re.findall("c(\w+)",re_str) #匹配括号里面的内容
rm2=re.findall("(c)(\w+)",re_str)#分组,把括号的内容当做列表的一个元素
rm3=re.findall("(c)((\w+)(l))(v)",re_str)#分组,把括号的内容当做列表的一个元素
print(rm1)
print(rm2)
print(rm3)

r="calvin"
rm1=re.findall("(\w+){6}",r)
rm2=re.findall("(\dacd)+",\'1233acdhhfgf5acd66\')
rm3=re.findall("(\dacd)*",\'1233acdhhfgf5acd66\')#*会匹配空
print(rm1)
print(rm2)
print(rm3)

分类:

技术点:

相关文章: