python正则表达式练习题 - 君の名は。

时间:2024-03-11 13:05:15

1. 写一个正则表达式,使其能同时识别下面所有的字符串:\'bat\',\'bit\', \'but\', \'hat\', \'hit\', \'hut\'

bt = \'bat|bit|but|hat|hit|hut\'

m = re.search(bt, \'bhut\')

s = "bat, bit, but, hat, hit, hut"
print (re.findall(r\'[bh][aiu]t\', s))

 

2.匹配由单个空格分隔的任意单词对,也就是姓和名

bt = \'[a-zA-Z]+ [a-zA-Z]+\'

m = re.match(bt, "Jane Smith")

 

3. 匹配由单个逗号和单个空白符分隔的任何单词和单个字母,如姓氏的首字母

s = "yu, Guan bei, Liu fei, Zhang"

m = re.findall(r\'([A-Za-z]+),\s([A-Za-z])\', s)

 

4.匹配所有的有效的Python标识符集合

s = "__hello, python_1, 2world, pra_ni, @dfa_,ewq* "

print(re.findall(r"\b[a-zA-Z_][\w]*(?!=W)", s))

 

5. 根据美国街道地址格式,匹配街道地址。美国接到地址使用如下格式:1180 Bordeaux Drive。使你的正则表达式足够灵活,以支持多单词的街道名称,如3120 De la Cruz Boulevard

s = "1180 Bordeaux Drive"

m = re.search(r\'\d+( +[a-zA-Z]+)+\', s)

 

6. 匹配以“www”起始且以“.com”结尾的简单Web域名:例如,http://www.yahoo.com ,也支持其他域名,如.edu .net等

m = re.search(r\'w{3}\.[a-zA-Z]+\.(com|edu|net)\',s)

 

7.匹配所有能够表示Python整数的字符串集