开发者社区> 问答> 正文

关于python,正则表达式作为if判断条件的问题

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

if 一行链接 匹配/course/:

'''
elif 一行链接匹配/specializations/:

'''
else 一行链接匹配 /learn/:

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

展开
收起
a123456678 2016-03-13 10:47:55 8653 0
1 条回答
写回答
取消 提交回答
  • 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是不可以的,就会导致specializations和course都能匹配到。
    希望可以帮到你。

    2019-07-17 19:02:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载