1.正则表达式: r"[bh][aiu]t"
2.正则表达式:r"\w+ \w+"
3.正则表达式:r"\w+, [\w]"
4.正则表达式:r"[A-Z_a-z][\w_]*"
5.正则表达式:r"\d+ [a-zA-z]+[a-zA-z ]*"
6.正则表达式:r"www\.\w+\.(com|edu|net)"
7-8.正则表达式:r"^-?(\d*)|(0[0-7]*)|(0[xX][0-9a-fA-F]+)$"
9.正则表达式:r"^\d+\.\d*$"
10.正则表达式:r"(\d+(\.\d*)?)?[\+-]?\d+j"
11.正则表达式:r"[a-zA-z][\w_]*@\w[\w-]*\.[a-zA-z]{2,}" #假设邮件前缀可以包含字母、数字和下划线,且以字母开头
13.
# -*- coding: utf-8 -*-
import re
def gettype(val):
typestr = str(type(val))
mytype = re.match(r"", typestr).group(1)
systype = type(val).__name__
if mytype == systype:
print u"类型是:", mytype
else:
print u"错误"
14. r"1[0-2]"
15. A. r"([0-9]{4}-?[0-9]{6}-?[0-9]{5})|(([0-9]{4}-?){4})"
B.
def CheckCardNum(card_num):
"检验卡号的有效性"
import re
if not isinstance(card_num, str): card_num = str(card_num)
m = re.match(r"([0-9]{4}-?[0-9]{6}-?[0-9]{5})|(([0-9]{4}-?){4})", card_num)
if m is not None:
if '-' in card_num:
card_num = card_num.replace('-','')
sum = 0
if len(card_num) == 15:
for i, num in enumerate(card_num):
num = int(num)
if (i+1)%2:
sum += num
else:
num=num*2 if num*2 < 9 else num*2-9
sum += num
else:
for i, num in enumerate(card_num):
num = int(num)
if (i+1)%2:
num=num*2 if num*2 < 9 else num*2-9
sum += num
else:
sum += num
if sum%10 == 0:
print u"卡号输入正确"
else:
print u"请输入正确的卡号"
16.
#!/usr/bin/env python
from random import randint, choice
from string import lowercase
from sys import maxint
from time import ctime
f = open(r"E:\code\Core Python Programming\15\redata.txt", 'w')
doms = ('com', 'edu', 'net', 'org', 'gov')
for i in range(randint(5, 10)):
dtint = randint(0, maxint-1)
dtstr = ctime(dtint)
shorter = randint(4, 7)
em = ''
for j in range(shorter):
em += choice(lowercase)
longer = randint(shorter, 12)
dn = ''
for j in range(longer):
dn += choice(lowercase)
eachline = '%s::%s@%s.%s::%d-%d-%d' % (dtstr, em,
dn, choice(doms), dtint, shorter, longer)
f.writelines(eachline+'\n')
f.close()
17.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from random import randint, choice
from string import lowercase
from sys import maxint
from time import ctime
f = open(r"E:\code\Core Python Programming\15\redata.txt", 'w')
doms = ('com', 'edu', 'net', 'org', 'gov')
for i in range(randint(5, 10)):
dtint = randint(0, maxint-1)
dtstr = ctime(dtint)
shorter = randint(4, 7)
em = ''
for j in range(shorter):
em += choice(lowercase)
longer = randint(shorter, 12)
dn = ''
for j in range(longer):
dn += choice(lowercase)
eachline = '%s::%s@%s.%s::%d-%d-%d' % (dtstr, em,
dn, choice(doms), dtint, shorter, longer)
f.writelines(eachline+'\n')
f.close()
weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
f = open(r"E:\code\Core Python Programming\15\redata.txt", 'r')
datas = f.readlines()
Montimes, Tuetimes, Thutimes, Wedtimes, Fritimes, Sattimes, Suntimes = 0, \
0, 0, 0, 0, 0, 0
times = {'Mon': Montimes, 'Tue': Tuetimes, 'Wed': Wedtimes, 'Thu': Thutimes, \
'Fri': Fritimes, 'Sat': Sattimes, 'Sun': Suntimes}
for data in datas:
for weekday in times:
if weekday in data:
times[weekday] += 1
break
for weekday in weekdays:
print u"%s 出现的次数时:%d" % (weekday, times[weekday])
18.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from random import randint, choice
from string import lowercase
from sys import maxint
from time import ctime
import re
f = open(r"E:\code\Core Python Programming\15\redata.txt", 'w')
doms = ('com', 'edu', 'net', 'org', 'gov')
for i in range(randint(5, 10)):
dtint = randint(0, maxint-1)
dtstr = ctime(dtint)
shorter = randint(4, 7)
em = ''
for j in range(shorter):
em += choice(lowercase)
longer = randint(shorter, 12)
dn = ''
for j in range(longer):
dn += choice(lowercase)
eachline = '%s::%s@%s.%s::%d-%d-%d' % (dtstr, em,
dn, choice(doms), dtint, shorter, longer)
f.writelines(eachline+'\n')
f.close()
f = open(r"E:\code\Core Python Programming\15\redata.txt", 'r')
check = True
patt = r"([\w :]{24})[a-z@\.:]+(\d+).*"
flines = f.readlines()
for eachline in flines:
datadtstr = re.match(patt, eachline).group(1)
datadtint = re.match(patt, eachline).group(2)
if datadtstr == ctime(int(datadtint)):
continue
else:
check = False
break
if check:
print u"数据完好!"
else:
print u"数据有误!"
19. patt = r"[\w :]{24}" re.search()
20. patt = r"[a-z]*@[a-z\.]*" re.search()
21. patt = r"[A-za-z ]{4}([a-zA-Z]{3})" (re.search(patt, string).group(1))
22. patt = r"\d{4}:" re.search(patt, string).group()[:4]
23. patt = r"(\d{2}:){2}\d{2}" re.search()
24-25. patt = r"\b[a-z]+\b" re.findall()
26.
newlines = []
f = open(r"redata.txt", 'r')
for eachline in f.readlines():
newline = re.sub(r'\b[a-z]+@[a-z\.]+', 'myemail@gmail.com', eachline)
newlines.append(newline)
f.close()
f = open(r"redata.txt", 'w')
f.writelines(newlines)
27.
f = open(r"redata.txt", 'r')
for eachline in f.readlines():
month_day = re.findall(r'\b[A-Z][a-z]{2}\b', eachline)
month = month_day[1]
day = month_day[0]
year = re.search(r'(\d{4}):', eachline).group(1)
print '%s %s, %s' % (month, day, year)
28. patt = r"(\d{3}-)?\d{3}-\d{4}"
29. patt = r"((\d{3}-)|(\(\d{3}\)))?\d{3}-\d{4}"