python学习之re篇

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()
        

        例如:
            >>>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)



猜你喜欢

转载自blog.csdn.net/qq_25233621/article/details/80978267