import re # phone_number = input("请输入电话号码:") # if re.match('^(13|15|18|19)[0-9]{9}$',phone_number): # print('身份合法') # else: # print('不合法') #字符组 :[字符],在同一个位置可能出现的各种字符组成一个字符组 #一个字符组里可以出现多个规则。 #所有的量词都要用在正则规则的后面,只约束量词前面的正则。 '''re模块''' #findall 返回所有满足匹配条件的结果,放在列表中 regt = re.findall('[a-z]+','eva egon yuan') print(regt) #结果: ['eva', 'egon', 'yuan'] #函数会在字符串内查找模式匹配,只要找到第一个匹配就返回一个 #包含匹配信息的对象,该对象可以通过.group()方法得到匹配的字符串 #如果字符串没有匹配,则返回None,调用.group()会报错 ret = re.search('a','gave egong dfdfa').group() print(ret) #结果: a # 从头开始匹配,如果正则规则从头开始可以匹配上,就返回一个变量, # 其它与serach相同 rett = re.match('a','aef gegfa daa').group() print(rett)
爬虫例子
import re from urllib.request import urlopen def getPage(url): response = urlopen(url) return response.read().decode('utf-8') def parsePage(s): ret = re.findall( '<div class="item">.*?<div class="pic">.*?<em .*?>(?P<id>\d+).*?<span class="title">(?P<title>.*?)</span>' '.*?<span class="rating_num" .*?>(?P<rating_num>.*?)</span>.*?<span>(?P<comment_num>.*?)评价</span>',s,re.S) return ret def main(num): url = 'https://movie.douban.com/top250?start=%s&filter=' % num response_html = getPage(url) ret = parsePage(response_html) print(ret) count = 0 for i in range(10): # 10页 main(count) count += 25 # url从网页上把代码搞下来 # bytes decode ——> utf-8 网页内容就是我的待匹配字符串 # ret = re.findall(正则,带匹配的字符串) #ret是所有匹配到的内容组成的列表
详细内容查看地址:
http://www.cnblogs.com/Eva-J/articles/7228075.html