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

WBOY
풀어 주다: 2016-06-06 20:09:28
원래의
1261명이 탐색했습니다.

有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/:

<code>'''</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사

elif 一行链接匹配/specializations/:

<code>'''</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사

else 一行链接匹配 /learn/:

<code>'''
</code>
로그인 후 복사
로그인 후 복사

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

回复内容:

有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/:

<code>'''</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사

elif 一行链接匹配/specializations/:

<code>'''</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사

else 一行链接匹配 /learn/:

<code>'''
</code>
로그인 후 복사
로그인 후 복사

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

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

<code>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
</code>
로그인 후 복사

<code>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'
</code>
로그인 후 복사

这里用到了正则.+,其中.是指任意字符,+代表一个以上的字符,.+就是匹配一个以上的任意字符。
Python中re模块是正则相关的模块,这里用到了re.search,如果匹配字符串成功,会返回一个对象,否则返回None
re模块还有其他函数,例如re.findall,re.match,re.replace

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!