Python实验三——正则表达式

学习了python的正则表达式,如果做的有不对或者麻烦的,欢迎各位批评指正!

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

str = ["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"]

for i in str: 
    per =re.findall(r'http:\/\/\w*?\..*?\/',i)
    print(per)

2. 查找所有的单词 hello world ha ha

import re 
example = "hello world ha ha"
print(re.findall('\\b\w.+?\\b',example))

3. 匹配用一个空格分隔的任意一对单词,比如,名和姓

import re
pattern = r'\b\w+\s\w+\b'
#pattern = r'[A-Za-z]+\s[A-Za-z]+'
example = "Wang Linlin"
rsl = re.match(pattern,example)
print(rsl.group())

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

import re
example1 = "2bin=2"
example2 = "adsc_s"
pattern = r'\b[a-zA-Z_]\w+\b'
print(re.findall(pattern,example1))
print(re.findall(pattern,example2))

5. 匹配合法的ip地址

import re 
pattern = '^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'
example = "192.168.1.1"
print(re.findall(pattern,example))

6. 匹配所有合法的电子邮件地址(先写出一个限制比较宽松的正则表达式,然后尽可能加 强限制条件,但要保证功能的正确性)。

import re
pattern = r'^\w+@[a-zA-Z0-9]+\.com'
example = input("请输入一个邮箱:")
print(re.findall(pattern,example))

7. 取出属性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 
pattern = r'<img data-original="(.*?)"'

data ='<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(pattern,data))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值