正则表达式

 python 正则表达式

符号表格

正则表达式_第1张图片

 说明

①一大段文字,只是一个字符串,$和^只负责结尾和开头。大段文字中间的文本,没法使用$和^。

②{n, m}的特殊情况

? 等价于{0,1}

+ 等价于{1,}

*等价于{0,}

举例

选择不同区域和数量

贪婪模式和懒惰模式

正则表达式_第2张图片

 (韦玮:《精通python网络爬虫:核心技术、框架与项目实战》,北京:机械工业出版社,2017年,第60页。)

这里的 “?”限定的是后面字符。在这个例子中,?限定后面的"y"。在“ . * ”后面加上“?”

网络链接

pattern="[a-zA-Z]+://[^\s]*"

[^\s]*"意思是非空格的字符可以有多个。这样的简洁表达,可以涵盖各种网络链接

pattern="[a-zA-Z]+://[^\s]*\d"

正则表达式_第3张图片

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页。)

你可能感兴趣的:(正则表达式,python)