re 库 #正则表达式
常用参数:
pattern:正则表达式的字符串或原生字符串表示, string:待匹配的字符串, flags:正则表达式使用时的标记,
maxsplit:最大分割数,剩余部分作为一个整体输出 repl:替换字符串的字符串, count:匹配的最大替换次数
flags :
re.I(大写I) #忽略正则表达式的大小写
re.M #从给定的正则表达式的每一行开始匹配
re.s #正则表达式中的.操作符能够匹配所有字符,除了换行符
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正则表达式常用的操作符:
{ m } -------------------------------------------------------------------------------------------------#扩展一个字符 m 次 列如:ab{ 2 }c == abbc
{ m , n } --------------------------------------------------------------------------------------------#扩展一个字符 m 至 n 次 列如:ab{ 1, 2 }c == abc,abbc
^ -----------------------------------------------------------------------------------------------------#匹配字符串开头 列如:^abc 表示abc 且在一个字符串开头
$ -----------------------------------------------------------------------------------------------------#匹配字符串结尾 列如:abc$表示abc且在一个字符串的结尾
( ) ----------------------------------------------------------------------------------------------------#分组标记 内部只能用 | 操作符 列如:(abc|def) 表示 abc ,def
\d ----------------------------------------------------------------------------------------------------#数字 等价于 1 -- 9
\w ---------------------------------------------------------------------------------------------------#单词字符
. -----------------------------------------------------------------------------------------------------#任何单个字符
[ ] ----------------------------------------------------------------------------------------------------#字符集 给单个字符给出取值范围 列如:[abc] ==a , b, c
[^]----------------------------------------------------------------------------------------------------#非字符集 给单个字符给出排除范围 列如:[^abc] == 非 a,非b ,非c
* ------------------------------------------------------------------------------------------------------#扩展 给前一个字符0次或无限扩展 列如: abc* == ab,abc,abcc,abcccc
+------------------------------------------------------------------------------------------------------#扩展 给前一个字符1次或无限扩展 列如: abc+ ==abc,abcc,abcccc
?------------------------------------------------------------------------------------------------------#扩展 给前一个字符0次或一次扩展 列如: abc? == ab,abc
|-------------------------------------------------------------------------------------------------------#左右任意一个 列如: abc | def == abc,def
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
re.compile(pattern,flags=0)-------------------------------------------------------------------------#将正则表达式的字符串形式编译成正则表达式对象 regex = re.compile() 随后使用以下函数 regex.findall()等等
re.search(pattern,string,flags=0)---------------------------------------------------------------------#Search函数 在一个字符串中搜索匹配正则表达式的第一个位置返回match对象
re.match(pattern,string,flags=0)---------------------------------------------------------------------#Match函数 从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall(pattern,string,flags=0)---------------------------------------------------------------------#搜索字符串以列表类型返回全部能匹配的子串
re.split(pattern,string,maxspilt=0,flags=0)-----------------------------------------------------------#将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.finditer(pattern,string,flags=0--------------------------------------------------------------------#搜索字符串,返回一个匹配结果的迭代类型,每个迭代类型是match对象
re.sub(pattern,repl,string,count=0,flags=0)---------------------------------------------------------#在一个字符串中替换所有正则表达式的字串,返回替换后的字符串
append(object)--------------------------------------------------------------------------------------#将元素加到列表中
match对象的方法
<>.group(0)------------------------------------------------------------------------------------------#获取匹配的字符串
<>.start()---------------------------------------------------------------------------------------------#匹配字符串在原始字符串的开始位置
<>.end()----------------------------------------------------------------------------------------------#匹配字符串在原始字符串的结束位置
<>.span()---------------------------------------------------------------------------------------------#返回.start()或者.end()
例如:
常用参数:
pattern:正则表达式的字符串或原生字符串表示, string:待匹配的字符串, flags:正则表达式使用时的标记,
maxsplit:最大分割数,剩余部分作为一个整体输出 repl:替换字符串的字符串, count:匹配的最大替换次数
flags :
re.I(大写I) #忽略正则表达式的大小写
re.M #从给定的正则表达式的每一行开始匹配
re.s #正则表达式中的.操作符能够匹配所有字符,除了换行符
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正则表达式常用的操作符:
{ m } -------------------------------------------------------------------------------------------------#扩展一个字符 m 次 列如:ab{ 2 }c == abbc
{ m , n } --------------------------------------------------------------------------------------------#扩展一个字符 m 至 n 次 列如:ab{ 1, 2 }c == abc,abbc
^ -----------------------------------------------------------------------------------------------------#匹配字符串开头 列如:^abc 表示abc 且在一个字符串开头
$ -----------------------------------------------------------------------------------------------------#匹配字符串结尾 列如:abc$表示abc且在一个字符串的结尾
( ) ----------------------------------------------------------------------------------------------------#分组标记 内部只能用 | 操作符 列如:(abc|def) 表示 abc ,def
\d ----------------------------------------------------------------------------------------------------#数字 等价于 1 -- 9
\w ---------------------------------------------------------------------------------------------------#单词字符
. -----------------------------------------------------------------------------------------------------#任何单个字符
[ ] ----------------------------------------------------------------------------------------------------#字符集 给单个字符给出取值范围 列如:[abc] ==a , b, c
[^]----------------------------------------------------------------------------------------------------#非字符集 给单个字符给出排除范围 列如:[^abc] == 非 a,非b ,非c
* ------------------------------------------------------------------------------------------------------#扩展 给前一个字符0次或无限扩展 列如: abc* == ab,abc,abcc,abcccc
+------------------------------------------------------------------------------------------------------#扩展 给前一个字符1次或无限扩展 列如: abc+ ==abc,abcc,abcccc
?------------------------------------------------------------------------------------------------------#扩展 给前一个字符0次或一次扩展 列如: abc? == ab,abc
|-------------------------------------------------------------------------------------------------------#左右任意一个 列如: abc | def == abc,def
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
re.compile(pattern,flags=0)-------------------------------------------------------------------------#将正则表达式的字符串形式编译成正则表达式对象 regex = re.compile() 随后使用以下函数 regex.findall()等等
re.search(pattern,string,flags=0)---------------------------------------------------------------------#Search函数 在一个字符串中搜索匹配正则表达式的第一个位置返回match对象
re.match(pattern,string,flags=0)---------------------------------------------------------------------#Match函数 从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall(pattern,string,flags=0)---------------------------------------------------------------------#搜索字符串以列表类型返回全部能匹配的子串
re.split(pattern,string,maxspilt=0,flags=0)-----------------------------------------------------------#将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.finditer(pattern,string,flags=0--------------------------------------------------------------------#搜索字符串,返回一个匹配结果的迭代类型,每个迭代类型是match对象
re.sub(pattern,repl,string,count=0,flags=0)---------------------------------------------------------#在一个字符串中替换所有正则表达式的字串,返回替换后的字符串
append(object)--------------------------------------------------------------------------------------#将元素加到列表中
match对象的方法
<>.group(0)------------------------------------------------------------------------------------------#获取匹配的字符串
<>.start()---------------------------------------------------------------------------------------------#匹配字符串在原始字符串的开始位置
<>.end()----------------------------------------------------------------------------------------------#匹配字符串在原始字符串的结束位置
<>.span()---------------------------------------------------------------------------------------------#返回.start()或者.end()
例如:
>>>parttern=re.compile(r'https://pan.baidu.com/s/.{23}')
>>> re.findall(parttern,r.text)
代码简单实例:re-requests
import re
import requests
def compare(text):
try:
pattern = re.compile(r'\"herf\"')
mass=re.match(pattern,text)
return mass
except:
print("not done")
def getHtml():
try:
print("输入网址:")
url=input()
Bs={'user-agent':'firefox/124.451'}
r=requests.get(url,headers=Bs)
print(r.status_code)
r.encoding=r.apparent_encoding
return r.text
except:
print("html not done")
if __name__ == '__main__':
text=getHtml()
commass=compare(text)