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。