爬虫的提取(2)--re正则

python正则表达式基本元字符


.   通配符,匹配所有字符

^abc  匹配以abc开始的字符串

abc$  匹配以abc结尾的字符串

[abc]  匹配字符集合

[A-Z0-9] 匹配字符范围

ed|ing|s 匹配指定的字符串,诸如ed或者ing或者s

*   前面项目0个或者多个,如a*/[a-z]* (也叫Kleene闭包)

+   前面项目1个或者多个,如a+、[a-z]+

?   前面项目0个或者1个,如a?、[a-z]?

{n}   重复n次

{n,}  至少重复n次

{,n}  重复不多于n次

{m,n}  至少重复m次不多于n次

a(b|c)+  括号表示操作符的范围

正则表达式符号:

\b 词边界

\d 任何数字等于[0-9]

\D 任何非数字等于[^0-9]

\s 任何空白字符[\t\n\r\f\v]

\S 任何非空白字符[^\t\n\r\f\v]

\w 任何字母[A-Za-z0-9]

\W 任何非字母[^A-Za-z0-9]

\t 制表符

\n 换行符

贪婪模式
在python中默认采用的是贪婪模式,使用非贪婪模式的话,只需要在量词后面直接加上一个问号”?”。所以,我们可以将贪婪模式理解为:在整个表达式匹配成功的前提下,尽可能多的匹配。

非贪婪模式也就是将我们例子中的正则表达式“ab+”改为”ab+?”

import re
# 将正则表达式编译成pattern对象
pattern = re.compile(r'hello.*\!')
# 使用pattern对象匹配文本,获得匹配结果,无法匹配时返回None
match = pattern.match('str')
#以规则做分割
match = pattern.spilt('')
#替换一些匹配的数据
match = pattern.sub('')
#替换匹配数据的次数
match = pattern.subn('')

你可能感兴趣的:(爬虫的提取(2)--re正则)