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

 

posted @ 2020-08-02 10:13  kongbursi  阅读(222)  评论(0编辑  收藏  举报