演示正则表达式的拓展内容:函数:finditer(regex,string,[flags=0]):参数:和match.search.findall一样理解功能:将所有匹配的数据封装为一个一个的match对象,然后以iterator返回 import re str1 = 'i love shanghai shanghai shanghai so much' regex = 'shanghai' it = re.finditer(regex,str1) print(it,type(it)) '''…
替换:sub(regex,repl,string,count,[flags=0]): 替换数据,返回字符串(已经被替换完成后的内容)subn(regex,repl,string,count,[flags=0]): 替换数据,返回元祖对象,此元祖有两个元素 第一个元素记录了替换以后的字符串内容, 第二个元素记录了被替换的次数(count的值)参数:regex:正则规则(字符串)repl:需要被替换成的内容(new)string:需要被替换的内容(原串)count:需要被替换的个数,默认全部替换 i…
演示正则中的替换和切割操作:在这之前我们先学习一个分组的概念: 分组:在正则中定义(...)就可以进行分组,理解为得到了一个子组好处:1).如果正则中的逻辑比较复杂,使用分组就可以优化代码的阅读性(更有层级感)2).一旦进行了分组,在正则表达式的后半部分内容中很有可能需要引用子组中的内容: 一旦引用了组,那么这两部分的内容(值)就可以保持一致了 import re phone=' regex=r'd{4}(d)r{3}' #r'...()...()...()..' print(re.match(…
函数:match(regex,string,[flags=0])参数:regex:就是正则表达式(定义了一套验证规则)string:需要被验证的字符串数据flags:模式/标志位,默认情况下(不定义) --> 不开启任何的模式功能:从头开始尝试匹配字符串数据(注意:如果开头就不匹配直接返回None值),如果匹配成功,那么就会返回一个match对象:如果匹配不成功,那么就会返回None值flags的取值:re.I:忽然大小写match对象有5个常用的函数:group():返回匹配成功的数据(原串中…
切割:split(regex,string):返回一个列表对象 import re str1='i love shenzhen so much' regex=r' +?' lt=re.split(regex,str1) print(lt) str2='dsafsa2341241dfakdsf34242dsafasfd______3214123fdsafas2131dsafas' regex=r'd+' lt=re.split(regex,str2) print(lt) ''' 补充案例:和替换有…
4).函数:findall(regex,string,[flags=0]): 参数: 和match.search一样理解 功能: 将所有匹配成功的子数据(子串),以列表的形式返回: 如果一个都没有匹配成功,那么返回一个空列表 compile()配合search()使用: pat=re.compile(r'www') matchobj=pat.search('www.sina.com!!www.baidu.com.com!!www') print(matchobj) 函数:findall(rege…
函数:search(regex,string,[flags=0]):参数:和match一样理解功能:从头开始匹配字符串中的数据,如果头不匹配继续往后尝试匹配,直到有第一个匹配成功的子数据,立即返回一个match对象:此时就算后面还有匹配的子数据,直接无视...当然匹配不成功,返回None值[注意]:由于search调用完毕之后返回的仍然是一个match对象,所以还是可以调用5个常用的函数 import re print(re.match(r'www','hahawww.baidu.com!!ww…
2).compile(regex,[flags=0]):返回一个Pattern对象(认为:它内部已经封装了一套regex和flags) 可以再通过Pattern对象继续调用match函数(此时只需要传递一个参数:string即可) 注意: 以上函数中涉及的参数:regex.flags.string和re.match中的参数一样理解…
自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest): #1.打开两个文件:1个关联读操作,1个关联写操作 fr=open(src,'rb') fw=open(dest,'wb') #读和写操作 content=fr.read() fw.write(content) #关闭两个文件 fw.close() fr.close() def copyFile01(src,dest): #1.打开两个文件:1个关联读操作.1个关联写操作 fr=…
演示:读取中文字符 结论: 1).如果不设置encoding,默认使用gbk进行编解码 2).如果编码和解码不一致,最终导致报错,但是一旦设置了errors='ingore',那么就不会报错,而采取乱码现象显示 3).tell():返回的是文件描述符的字节位 4).对于读操作,必须保证路径中的文件一定是真实存在的,否则报错:FileNotFoundError #打开文件: f2=open(r'F:\PyCharm\多味红豆\python第二十九课——文件读写\a.txt','r',encodin…