正则的基本习题

Python正则表达式篇课后习题
1-1. 识别下列字符串:“bat,” “bit,” “but,” “hat,” “hit,” 或 “hut”
import  re
data = 'bat bit btt a ta tib atb but hat hit hut'
patt = '[bh][aiu]t'
m = re.findall(patt,data)
print(m)
 
1-2.匹配用一个空格分隔的任意一对单词,比如,名和姓
import  re
data = '3432@#zhou yaping zhou ge'
patt = '([A-Za-z]+s?)+'
m = re.search(patt,data)
print(m.group())
 
 
1-3. 匹配用一个逗号和一个空格分开的一个单词和一个字母。例如,英文人名中的姓和名 的首字母
import  re
data = 'ZHOU ge,wang san,Li SI'
patt = ',|s'
m = re.split(patt,data)
print(m)
 
 
1-4. 匹配所有合法的Python标识符
import  re
data = 'a asd _da 32sda jjij221_'
patt = '[_A-Za-z]+[_w]+'
m = re.findall(patt,data)
print(m)
 
 
1-5.请根据您(读者)本地关于地址的格式写法匹配一个街道地址(你写出的正则表达式要 尽可能通用以匹配任意数目的表示街道名字的单词,包括类型指示)。比如,美国的街道地址使用这 样的格式:1180 Bordeaux
Drive.使你写的正则表达式尽可能通用,要求能够匹配多个单词的街道 名字,如:3120 De la Cruz Boulevard.
 
import  re
data = '1180 Bordeaux Drive Crus De la'
patt = 'd{4}s([A-Za-z]+s?)+'
m = re.match(patt, data)
print(m.group())
 
 
1-6.匹配简单的以“http/https/www.”开头,以“.com”作结尾的Web域名,例如:www.yahoo.com.
 
import  re
data = 'http://www.foothill.edu'
patt = r'(www:|http:|https:)//www.w+(.com|.edu|.net)/?'
m = re.match(patt,data)
print(m.group())
 
 
1-7.匹配全体Python整数的字符串表示形式的集合
import  re
data = '231312 asad 234234 212.32'
patt = 'd+'
m = re.findall(patt,data)
print(m)
 
 
 
1-8.Python3已经把int和long合并了,没有123L这种表示法了
import  re
data = '231312 asad 234234 212.32'
patt = 'd+'
m = re.findall(patt,data)
print(m)
 
 
1-9.匹配全体Python浮点数的字符串表示形式的集合
import  re
data = '23123.44 0.2131'
patt = 'd+.d+'
m = re.findall(patt,data)
print(m)
 

 
1-10(扩展) 匹配所有能够表示 Python 复数的字符串集。使用match()方法。
import  re
data = '6.34+7.89J'
patt = 'd*(.d*)?[+-]?d*(.d*)?[Jj]?'
m = re.match(patt,data)
print(m.group())
data = '98j'
m = re.match(patt,data)
print(m.group())
print(type(m))
 
 
 
1-11(扩展)匹配所有能够表示有效电子邮件地址的集合(从一个宽松的正则表达式开始,然后尝试使它尽可能严谨,不过要保持正确的功能)。
import  re
data = 'qqd1231312-dqd@wqd.com'
patt = r'[A-Za-z]+([-.]?w+)+@((w+-?w*)+.)+w{2,3}'
m = re.match(patt, data)
if m is not None:
    print(m.group())
 
原文地址:https://www.cnblogs.com/wutanghua/p/11393931.html