Python正则简单练习

xiaoxiao2021-02-28  19

# 关卡一 练习题: 1. 匹配网址 有一批网址: ``` http://www.interoem.com/messageinfo.asp?id=35 http://3995503.com/class/class09/news_show.asp?id=14 http://lib.wzmc.edu.cn/news/onews.asp?id=769 http://www.zy-ls.com/alfx.asp?newsid=377&id=6 http://www.fincm.com/newslist.asp?id=415 ``` 需要   正则后为: ``` http://www.interoem.com/  http://3995503.com/  http://lib.wzmc.edu.cn/  http://www.zy-ls.com/  http://www.fincm.com/ ``` ``` import re mystr = '''http://www.interoem.com/messageinfo.asp?id=35 http://3995503.com/class/class09/news_show.asp?id=14 http://lib.wzmc.edu.cn/news/onews.asp?id=769 http://www.zy-ls.com/alfx.asp?newsid=377&id=6 http://www.fincm.com/newslist.asp?id=415''' mystr = mystr.splitlines() print(mystr) for i in mystr:     print(re.match(r'http://.*(com/|cn/)',i,re.S).group()) ``` 2. 查找所有的单词 ``` hello world ha ha ``` ``` import re mystr = 'hello world ha ha' print(re.findall(r'\w+',mystr)) ``` 3. 匹配用一个空格分隔的任意一对单词,比如,名和姓 ``` import re mystr = 'huang feihong fang shiyu' print(re.findall(r'(\w+ \w+)',mystr)) ``` 4. 匹配所有合法的Python标识符 ``` import re mystr = '_abc123' print(re.match(r"[a-zA-Z_]\w*",mystr).group()) ``` 5. 匹配合法的ip地址 ``` import re  mystr = '10.16.20.3' print(re.match(r"^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}$",mystr).group()) ``` 6. 匹配所有合法的电子邮件地址(先写出一个限制比较宽松的正则表达式,然后尽可能加 强限制条件,但要保证功能的正确性)。  ``` import re  mystr = 'lucky188@163.com' print(re.match(r"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$",mystr).group()) ``` 7. 将一篇中文文章中的电子邮件地址替换为你自己的电子邮件地址 ``` import re mystr = '世界你好,lucky168@126.com,你好世界,lucky188@163.com' print(re.sub(r"\w+@\w+\.\w+",'453052784@qq.com',mystr)) ``` 8. 取出属性data-original对应的url ```  <img data-original="https://rpic.douyucdn.cn/z1609/07/15/478748_160907150833.jpg" src="https://rpic.douyucdn.cn/z1609/07/15/478748_160907150833.jpg" style="display: block;"> ``` ``` import re mystr = '<img data-original="https://rpic.douyucdn.cn/z1609/07/15/478748_160907150833.jpg" src="https://rpic.douyucdn.cn/z1609/07/15/478748_160907150833.jpg" style="display: block;">' print(re.findall(r'<img data-original="(.*?)" ',mystr,re.S)[0]) ```
转载请注明原文地址: https://www.6miu.com/read-2629322.html

最新回复(0)