正则表达式
1、匹配时间格式(2018-10-15) 2、匹配时间格式(2018-10-15 12:30:30) 3、匹配一个浮点数 4、匹配0-99之间的数字 5、8到20位的密码包含数字、字母、下划线 6、匹配出邮箱地址,且@符号之前有4到 20位 7、匹配1-100之间的数 8、匹配文章的阅读的次数 s = "阅读次数为 9999" 9、验证字符串的组成规则,第一个须为数字,后面可以是字母、数字、下划线,总长度为5-20位 10、匹配座机号码 010-67132692,其构造规则为[3位数字][-][8位数字] 或者 0431-4978981,其构造规则为[4位数字][-][7位数字] 11、对输入的qq号进行匹配(qq匹配规则:长度为5-10位,纯数字组成,且不能以0开头。) 12、对电话号码进行匹配(匹配要求:匹配成功的电话号码位数为11位的纯数字,且以1开头,第二位必须是:3、7、8中的一位,即只匹配 13*********、17*********、18*********的电话号码)。 13、s = "asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd"查找字符串中有多少个af 14、s = "abDEe23dJfd343dPOddfe4CdD5ccv!23rr"取出字符串中的所有字母 15、s = "zhangsan lisi wangwu"规则是按照空格出现一次或者多次切割 16、s = "c:\\abc\\a.txt" 用正则\\切割 17、s = "wer8934605juo123wa89320571f"将连续5个以上数字替换成# 18、s = "cudddbhuuujddd"将多个重复字母替换成& 19、s = "min tian jiu yao fang jia le ,da jia"获取长度为3个字母的单词 20、s = 'THREE people at HERE do some THING'找出以字母e结尾的单词,忽略大小写 21、s = "cudddbhuuujddd"将多个重复字母替换成一个字母(比如ddd替换成d) 22、s = "我我...我我...我要..要要...要要...学学学...学学...编编编..编程..程.程...程...程"将字符串变成 '我要学编程' 23、s = """ <div> <div> <img src='1.png'> <img src='2.png'> <img src='3.png'> <img src='4.png'> <img src='5.png'> <img src='6.png'> </div> <div> <img src='11.png'> <img src='22.png'> <img src='33.png'> <img src='44.png'> <img src='55.png'> <img src='66.png'> </div> </div> """ 找出 <img src='1.png'> <img src='2.png'> <img src='3.png'> <img src='4.png'> <img src='5.png'> <img src='6.png'> 24、s = "<div class='a'>正则<span>表达式</span><b style='color:red'>练习</b></div>"去掉div和b标签 结果: 正则<span>表达式</span>练习 25、你要怎样匹配姓Nakamoto的名字? 我们假定名字在姓前面出现,姓和名第一个字母大写。 下面的这些要被匹配: Satoshi Nakamoto, Alice Nakamoto, Robocop Nakamoto; 而下面这些不能被匹配:nulu Nakamoto(名字首字母没有大写) Mr. Nakamoto(Mr.是称号,类似的Dr. Ms. Mrs.之类的都不行) Nakamoto(没写名字) Satoshi nakamoto(姓第一个字母没有大写) s = """ Satoshi Nakamoto satoshi Nakamoto Alice Nakamoto Mr. Nakamoto Robocop Nakamoto Nakamoto Satoshi nakamoto """ 把符合名字的单词找出来 26、s = """121fefe 3qsqse2 ded6d32 aaaaa1a 1234adc """ 找出每行中只有3个数字的字符串 结果: 121fefe ded6d32
-------------------答案---------------------
import re 1、res = re.search(r'^\d{4}.\d{2}.\d{2}$','2018-10-15') 2、res =re.search(r'^\d{4}.\d{2}.\d{2}\s\d+.\d{2}.\d{2}$','2018-10-15 12:30:30') 3、res = re.search(r'(^[1-9]\d*|^0.\d*)', '10.314') 4、res = re.search(r'^\d{1,2}$','100') 5、res = re.search(r'^\w{8,20}$', '88888888') 6、res = re.search(r'^\d{4,20}@\d+.(com|cn|net|com.cn)', '1234@163.com') 7、res = re.search(r'^(\d{1,2}$|\d{1,2}0$)', '12') 8、res = re.search(r'\d+$', '阅读次数为 9999') 9、res = re.search(r'^\d\w{4,19}', '1q2w3e4r5t6y') 10、res = re.search(r'(^0\d{2}-\d{8}$|^0\d{3}-\d{7}$)', '010-67132692') 11、res = re.search(r'^[^0]\d{4,9}$', '66666') 12、res = re.search(r'^1(3|7|8)\d{9}$', '13737519134') 13
s = "asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd" ret = re.compile(r'af') res = ret.findall(s) print(len(res)) 14
s = "abDEe23dJfd343dPOddfe4CdD5ccv!23rr" ret = re.compile(r'[a-zA-Z]') res = ret.findall(s) print(res) 15
s = "zhangsan lisi wangwu" ret = re.compile(r'\s+') res = ret.split(s) print(res) 16
s = "c:\\abc\\a.txt" ret = re.compile(r'\\') res = ret.split(s) print(res) 17
s = "wer8934605juo123wa89320571f" ret = re.compile(r'\d{5,}') res = ret.sub('#', s) print(res) 18
s = "cudddbhuuujddd" ret = re.compile(r'([a-zA-Z])\1+') res = ret.sub('&', s) print(res) 19
s = "min tian jiu yao fang jia le ,da jia" ret = re.compile(r'\b\w{3}\b') res = ret.findall(s) print(res)