python实现三种以上判断条件_关于python,正则表达式作为if判断条件的问题

有2000行链接需要进行爬虫处理,可分为以下三种类型,字体加粗。

https://www.coursera.org/course/inforisk

https://www.coursera.org/specializations/cloudcomputing

https://www.coursera.org/learn/python-data

需要在python中写一个正则表达式在作为if条件语句的判断条件,关键词为“/course/” “/specializations/”以及 “/learn/”三个条件,结构如下

if 一行链接 匹配/course/:

'''

elif 一行链接匹配/specializations/:

'''

else 一行链接匹配 /learn/:

'''

初学python,看了一段正则的教学也没有太理解,求大神写一段可以作为判断条件的匹配,再能推荐些正则的学习资料就更好了!thx!

仅仅检查是否含有用in就可以了吧?

def check_url(word, url):

return word in url

for u in urls:

if check_url('/course/', u):

do something

elif check_url('/specializations/', u):

do something

elif check_url('/learn/', u):

do something

import re

raw = '''

https://www.coursera.org/course/inforisk

https://www.coursera.org/specializations/cloudcomputing

https://www.coursera.org/learn/python-data'''

check_func = lambda url, key: re.search('^https://www.coursera.org/%s/.+' % key, url)

for url in raw.split('\n'):

if check_func(url, 'course'):

print 'I m course'

elif check_func(url, 'specializations'):

print 'I m specializations'

elif check_func(url, 'learn'):

print 'I m learn'

这里用到了正则

.+

,其中

.

是指任意字符,

+

代表一个以上的字符,

.+

就是匹配一个以上的任意字符。

Python中

re

模块是正则相关的模块,这里用到了

re.search

,如果匹配字符串成功,会返回一个对象,否则返回None

re模块还有其他函数,例如

re.findall

,

re.match

,

re.replace

直接用in是不可以的,例如如果url是https://www.coursera.org/course/specializations,就会导致specializations和course都能匹配到。

希望可以帮到你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值