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())