《精通python网络爬虫》学习笔记二

正则表达式

原子

普通字符
非打印字符(如\n)
通用字符 \w任一字母数字下划线 \d任一十进制数 \s任一空白字符
原子表
[xyz]一组地位平等的原子
[^xyz]代表除了xyz之外的原子均可以匹配

元字符

. 匹配除换行符以外的任意字符
^ 匹配字符串的开始
$ 匹配字符串的结束
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
|模式选择符
()模式单元符

cd{1,}
(cd){1,}
py.*n

模式修正

I匹配时忽略大小写
M多行匹配
L做本地化识别匹配
U根据unicode字符及解析字符
S让.匹配包括换行符

result=re.search(pattern, string, re.I)

贪婪模式与懒惰模式

贪婪模式

p.*y

匹配到最后一个y
懒惰模式

p.*?y

匹配到就近的一个y

正则表达式常见函数

re.match()

re.match(pattern, string, flag)

从字符串的起始位置开始匹配

re.research()

搜索字符串全文

全局匹配函数

找所有匹配到的

扫描二维码关注公众号,回复: 2832928 查看本文章
#预编译
pattern=re.complie(".python.")
#找出符合模式的所有结果
result=pattern.findall(string)
print(result)

或整合成:

pattern = ".python."
result = re.compile(pattern).findall(string)

re.sub()

实现替换某些字符的功能

#全部替换
result = re.sub(pattern, "php", string)
#最多替换两次
result = re.sub(pattern, "php", string, 2)

猜你喜欢

转载自blog.csdn.net/sinat_25721683/article/details/81112133