python正则表达式的理解

1.match()和findall()


# encoding: UTF-8 

import re 

# 将正则表达式编译成Pattern对象 
pattern = re.compile(r'^hello\sw[a-z]')

# 使用search()查找匹配的子串,不存在能匹配的子串时将返回None 
# 这个例子中使用match()无法成功匹配 
match = pattern.search('hello world!hello worldddd') 

if match: 
    # 使用Match获得分组信息 

    print match.group()


网上找的全都是分类的语法,而没有很好的实践的例子能快点上手,所以多积累,才能看懂那些格式化的东西。





已经完全忘了findall这个函数了,今天实验了半天只用了match函数,只能匹配第一个。


但是找了好久网上都没有提到这个方法,还是得多积累呀。


2.^和$

这个只是匹配最开头和最结尾

# encoding: UTF-8 
import re 


# 将正则表达式编译成Pattern对象 
pattern = re.compile(r'.o$')


# 使用search()查找匹配的子串,不存在能匹配的子串时将返回None 
# 这个例子中使用match()无法成功匹配 
match = pattern.findall('hello world!healo worldddd') 


if match: 
    # 使用Match获得分组信息 
    print match


.o$没结果,而^h有结果。



3.我老是感觉这个是错的。但是却可以用。 我觉得是不是会匹配到 http://a.jpg   sdfkjasldfjals;f http://b.jpg 因为这个之间的东西也会被匹配到,就递归了,结果是没有的。


#! /usr/bin/env python
# encoding:utf-8


import urllib2
import re


pattern=re.compile('http:.*\.jpg')
response=urllib2.urlopen('http://iqiyi.com')
html=response.read()


match = pattern.findall(html) 


if match: 
    # 使用Match获得分组信息 
    print match


4.(新手问题)前面写了,以为match是可以匹配一个,匹配到了就返回值。结果自己写程序在日志中匹配ip却不能用。

后来xy给我说我要用的功能其实是search(),match()我现在理解应该只能匹配最开始??我也不知道match是干嘛的,反正以后用search和findall。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值