zoukankan      html  css  js  c++  java
  • python的re模块一些方法 && Tkinter图形界面设计 && 终止python运行函数 && python读写文件 && python一旦给字符串赋值就不能单独改变某个字符,除非重新给变量赋值

    Tkinter图形界面设计见:https://www.cnblogs.com/pywjh/p/9527828.html#radiobutton

    终止python运行函数:

    采用sys.exit(0)正常终止程序

    python读写文件(python3.0读写二进制文件后面一定要加b,否则会报错“write() argument must be str, not bytes”,例如:ab,a+b):

    #读写二进制文件,例如mp3、mp4
            film = requests.get(self.vedio_url, headers=self.headers).content
            with open(self.name+'.mp4', 'a+b') as f:
                f.write(film)    

    1、匹配规则

    2、re.compile:编译一个正则表达式,用这个结果去search,match,findall,finditer能够节省时间

    3、re.findall:返回列表,找所有的匹配项

    优点:可以匹配到所有满足条件的匹配项

    缺点:但是这个函数不会匹配换行

    import re
    pattern = re.compile(r'd+.d*')
    result = pattern.findall("123.141593, 'bigcat', 232312, 3.15")
    for item in result:
        print(item)
    #结果
    123.141593
    232312,
    3.15

    4、re.search:匹配就返回一个变量,通过group取匹配到的第一个值,不匹配就返回None,group会报错

    优点:可以匹配到换行,函数第三个参数加上re.S

    缺点:只能匹配到第一个满足条件的匹配项

    html = ''
    pattern1 = ',(.*?)#'
    url_old = re.search(pattern1,html,re.S)

    5、re.finditer:返回一个迭代器,所有的结果都在这个迭代器中,需要通过循环+group的形式取值,能够节省内存

    优点:可以匹配到换行,且能匹配到所有满足条件的匹配项

    ret = re.finditer('d+','alex83taibai40egon25')
    for i in ret:
        print(i.group())
    
    结果:
    83
    40
    25

    6、re.match 方法用于查找字符串的头部(也可以指定起始位置),它是一次匹配,只要找到了一个匹配的结果就返回,而不是查找所有匹配的结果。它的一般使用形式如下:

    match(string[, pos[, endpos]])

    其中,string 是待匹配的字符串,pos 和 endpos 是可选参数,指定字符串的起始和终点位置,默认值分别是 0 和 len (字符串长度)。因此,当你不指定 pos 和 endpos   时,match 方法默认匹配字符串的头部。

    当匹配成功时,返回一个 Match 对象,如果没有匹配上,则返回 None。

    ret = re.match('d+','172sjkhk按实际花费928')
    print(ret.group())
    
    结果:
    172
    >>> import re
    >>> pattern = re.compile(r'd+')  # 用于匹配至少一个数字
    
    >>> m = pattern.match('one12twothree34four')  # 查找头部,没有匹配
    >>> print m
    None
    
    >>> m = pattern.match('one12twothree34four', 2, 10) # 从'e'的位置开始匹配,没有匹配
    >>> print m
    None
  • 相关阅读:
    poj 2251 Dungeon Master
    poj 2488 A Knight's Journey
    poj 3349
    poj 2442
    poj 3274 Gold Balanced Lineup
    优先队列
    广州华盟信息科技有限公司
    山东山大华天软件有限公司
    RvmTranslator6.5 is released
    PipeCAD之管道标准库PipeStd(2)
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/13417859.html
Copyright © 2011-2022 走看看