#匹配电话号码
phoneRegex = re.compile(r'''(
(\d{3}|\(\d{3}\))? #3个数字或括号中的3个数字
(\s|-|\.)? #空白或-或.
(\d{3}) #3个数字
(\s|-|\.) #空白或-或.
(\d{4}) #4个数字
(\s*(ext|x|ext.)\s*(\d{2,5}))? #任意数量空白+可选ext+任意数量空白+2-5个数字
)''', re.VERBOSE)
#匹配邮件地址
emailRegex = re.compile(r'''(
[a-zA-Z0-9._%+-]+ #一个或多个字符,字母数字下划线,百分号,加好,短横,句号
@ #@符
[a-zA-Z0-9.-]+ #同上匹配
(\.[a-zA-Z]{2,4}) #.com这种域名部分,重复2-4个
)''', re.VERBOSE)
from collections import namedtuple
Duck
= namedtuple('Duck',
'bill tail')
duck =
Duck('wide irange',
'log')
duck
duck.bill
parts =
{'bill':
'wide orange',
'tail':
'long'}
#字典构造命名元祖
duck2 =
Duck(**parts)
duck3 = duck2._replace(tail='magnificent', bill='crushing')
#替换部分值,返回新的
search()
会返回第一次成功匹配,如果存在的话
m = re.search('Frank',
'Young Frankenstein')
findall()
会返回所有不重叠的匹配的列表,如果存在的话
m = re.findall('n',
'Young Frankenstein')
split()
会根据 pattern 将 source 切分成若干段,返回由这些片段组成的列表;
m = re.split('n', source)
#以n分隔,将其它字符放到数组
sub()
还需一个额外的参数 replacement,它会把 source 中所有匹配的 pattern 改成replacement。
m = re.sub('n',
'?', source)
#返回字符串,将匹配到的n换成问号
#字符串常量
import string
printable = string.printable
print(printable)
re.findall('\d', printable)
#找出数字
re.findall('\w', printable)
#数字,字符,下划线
re.findall('\s', printable)
#哪些是空格
re.findall('[wf]ish', source)
#w或f开头
re.findall('[wsh]+', source)
#若干个w、s、h的组合
re.findall('I (?=wish)', source)
#I开头,后面跟wish,出现次数尽量少
re.findall('(?<=I) wish', source)
#查询以wish结尾,前面为I的匹配(I出现的次数尽量少)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。