python正则表达式

最近我对python的网络爬虫产生了兴趣于是先去学习了python的正则表达式
毕竟这是网络爬虫的基础
以下是我做的总结

单个的原子操作

普通字符做原子
\n换行符
原子表


#coding=gbk
'''
Created on 2019年7月12日

@author: lenovo
'''
import re
String="taoyunjiaoyun"
#普通字符做原子
pat="yun"
result=re.search(pat,String)
print(result)
#       
#\n换行符
string='''taondiadji
saicashfi
'''
pat='\n'
result=re.search(pat,string)
print(result)  

string='''taondiadji787974
saicashfi
'''
pat='\w\d\d\d\w'
result=re.search(pat,string)
print(result) 


#原子表
string='''taondiadji787974
saicashfi
'''
pat='tao[ndiad]'
result=re.search(pat,string)
print(result) 

在这里插入图片描述

元字符

'''
#元字符
.除换行符外任意一个字符
^开始位置
$结束位置
*0\1\多次
?0\1次
+1\多次
{n}恰好n次
{n,}至少n次
{n,m}
|或
()模式单位

'''
string='''taoyunnndiadji787974saicashfi'''
pat='tao...'
pat='^tao...'
pat='tao.*'
pat='taoyun+'
pat='yun{2}'
result=re.search(pat,string)
print(result) 

在这里插入图片描述

模式修正符与贪婪模式和懒惰模式

#模式修正符
'''
I匹配是忽略大小写*
M多行匹配*
L本地化识别匹配
U Unicode
S 让.匹配包括换行符*
'''
string="Python"
pat='pyt'
rst=re.search(pat, string,re.I)
print(rst)


#贪婪模式和懒惰模式
string="Poythony"
pat='p.*y'#贪婪模式
pat1="p.*?y"#懒惰模式,精准
rst=re.search(pat, string,re.I)
rst1=re.search(pat1, string,re.I)
print(rst)
print(rst1)

在这里插入图片描述

正则表达式函数

#正则表达式函数
#1.match
#从头匹配
string="Poythony"
pat='o.*y'#贪婪模式
pat1="o.*?y"#懒惰模式,精准
rst=re.match(pat, string,re.I)
rst1=re.search(pat1, string,re.I)
print(rst)
print(rst1)
#2.search
#3.全局匹配函数
string='hpochyouychnhpohuy'
pat1="o.*?y"#懒惰模式,精准
rst1=re.compile(pat1).findall(string)
print(rst1)

在这里插入图片描述

实例

对于学习之后的一些实例检测

#实例匹配.com 和.cn网址
string="百度首页"
pat="[a-zA-Z]+://[^\s]*[.com|.cn]"
rst1=re.compile(pat).findall(string)
print(rst1)

#实例匹配电话号码
string='shdbcd234-224442455xeeerjwdndf9939-2324435555342jnfewfeu'
pat="\d{4}-\d{7}|\d{3}-\d{8}"
rst=re.compile(pat).findall(string)
print(rst)

在这里插入图片描述

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