Python中的正则表达式

前言

正则表达式作为一种字符串匹配逻辑,在此不做赘述。本文的重点,并不是正则表达式,而是在Python中使用正则表达式。

Re模块

Python 自带了re模块,它提供了对正则表达式的支持。主要用到的方法列举如下

#返回pattern对象
re.compile(string[,flag])  
#以下为匹配所用函数
re.match(pattern, string[, flags])
re.search(pattern, string[, flags])
re.split(pattern, string[, maxsplit])
re.findall(pattern, string[, flags])
re.finditer(pattern, string[, flags])
re.sub(pattern, repl, string[, count])
re.subn(pattern, repl, string[, count])

举个例子

# -*- coding: utf-8 -*-
 
#导入re模块
import re
 
# 将正则表达式编译成Pattern对象,注意hello前面的r的意思是“原生字符串”
pattern = re.compile(r'hello')
 
# 使用re.match匹配文本,获得匹配结果,无法匹配时将返回None
result1 = re.match(pattern,'hello')
result2 = re.match(pattern,'helloo CQC!')
result3 = re.match(pattern,'helo CQC!')
result4 = re.match(pattern,'hello CQC!')

其中,只有result3会为false。

举个大例子

要求

获取糗事百科首页的所有jpg图片的url

code

import urllib2
import re

# create header
page = 1
url = 'http://www.qiushibaike.com/hot/page/' + str(page)
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
# get original page
request = urllib2.Request(url,headers = headers)
response = urllib2.urlopen(request).read()
# complie image and jpg tag
pattern = re.compile(r'<img\ssrc="//[^\s]*.jpg')
# find all out
result = re.findall(pattern, response)
# print result
if result:
    for r in result:
        index = len(r)
        print r[12:index]

else:
    print 'match none'


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为什么要使用正则表达式 在软件开发过程中,经常涉及到大量的关键字等各种字符串的操作,使用正则表达式能很大简化开发的...
    伟大的洪立阅读 356评论 0 0
  • re模块的高级应用 search 执行正则表达式搜索并且在搜索结束后返回所匹配到的串,只返回第一次匹配到的结果求出...
    伟大的洪立阅读 298评论 0 0
  • 正则表达式使用步骤 1. 用import re导入正则表达式 2. 用re.compile()函数创建一个Rege...
    LorryZ阅读 439评论 0 1
  • 非教程——仅供参考以下内容只说明在Python中如何使用正则表达式,对正则表达式本身不再说明,如果想了解正则表达式...
    Jiafu阅读 286评论 0 0
  • 爱情,是什么,就是一种奋不顾身,去保护喜欢的人,爱情分为几类?第一类是两个人,真心相爱,第二个,那就是,两个女的同...
    美哒哒的阅读 298评论 0 0