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

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

#读写二进制文件,例如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、匹配规则

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

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
上一篇:java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码


下一篇:storm坑之---同步问题