说明
①一大段文字,只是一个字符串,$和^只负责结尾和开头。大段文字中间的文本,没法使用$和^。
②{n, m}的特殊情况
? 等价于{0,1}
+ 等价于{1,}
*等价于{0,}
贪婪模式和懒惰模式
(韦玮:《精通python网络爬虫:核心技术、框架与项目实战》,北京:机械工业出版社,2017年,第60页。)
这里的 “?”限定的是后面字符。在这个例子中,?限定后面的"y"。在“ . * ”后面加上“?”
pattern="[a-zA-Z]+://[^\s]*"
[^\s]*"意思是非空格的字符可以有多个。这样的简洁表达,可以涵盖各种网络链接
pattern="[a-zA-Z]+://[^\s]*\d"
result=re.compile(pattern1).findall(urlStr)
[ ]:原子表,可以定义一组地位平等的原子,然后匹配的时候会取该原子表中的任意个原子进行匹配,在 Python 中,原子表由[]表示,比如 [xyz]是一个原子表,这个原子表中定义了3个原子,这3个原子的地位平等
[^]代表的 是除了中括号里面的原子均可以匹配,比如 [^xyz]py" 能匹配“apy" ,但是却不能匹配 "xpy"
imageUrl=...
imageName=...
urllib.request.urlretrieve(imageUrl,filename=imageName)
(韦玮:《精通python网络爬虫:核心技术、框架与项目实战》,北京:机械工业出版社,2017年,第77页。)