python正则表达式的使用(实验代码)

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了python正则表达式的使用(实验代码)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
Python 自1.5版本起增加了re 模块,它提供 PErl 风格的正则表达式模式。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

python正则表达式的使用(实验代码),具体代码如下所示:

 import re data='''12345 2019-05-20 13:30:04,102 E:/PythonPRoject/accountReport-20190520/createReport_20190520.py(164): [INFO]start=24h-ago&m=sum:zscore.keys{compared=week,redis=6380,endpoint=192.168.8.11_Redis-b} 2019-05-20 13:30:04,133 E:/PythonProject/accountReport-20190520/createReport_20190520.py(164): [INFO]start=24h-ago&m=sum:keys{redis=6380,endpoint=192.168.8.120_Redis-sac-a} ''' # 1.1)非编译正则表达式的使用 def re_nocompile():  pattern="report" #匹配时间格式  r=re.findall(pattern,data,flags=re.IGNORECASE) # findall方法 返回字符串  print(r) # 1.2) 编译的正则表达式的使用(效率高) def re_compile():  pattern = "[0-9]{1,2}/:[0-9]{1,2}/:[0-9]{1,2}" # 匹配时间格式  re_obj=re.COMpile(pattern) #创建一个对象  r=re_obj.findall(data) # findall方法 返回字符串  print(r) # 2.1)“匹配” 类函数的使用 findall、 match、seArch、findITer def re_match():  pattern = "/d+" # 匹配数字  r=re.match(pattern,data) #match 函数是匹配字符串的开头,类似startwith  if r:  # 使用Match匹配成功后,返回SRE_MATCH类型的对象,该对象包含了相关模式和原始字符串,包括起始位置和结束位置   print(r)   print(r.start())   print(r.end())   print(r.string)   print(r.group()) # group()用来提出分组截获的字符串。group() 同group(0)就是匹配正则表达式整体结果。   # group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。   # 当然正则表达式中没有括号,group(1)肯定不对了   print(r.re)  else: # match如果匹配不到,返回None   print("False") def re_search():  pattern = "[0-9]{1,2}/:[0-9]{1,2}/:[0-9]{1,2}" # 匹配时间格式  r=re.search(pattern,data) # search方法是全部位置的匹配,返回SRE_MATCH对象  print(r)  print(r.start()) #起始位置  print(r.end()) #结束位置  # finditer返回一个迭代器 def re_finditer():  pattern = "/d+" # 匹配数字  r=re.finditer(pattern,data)  for i in r:   print(i.group()) # 贪婪匹配:总是匹配最长的那个字符串(默认) # 非贪婪匹配:总是匹配最短的那个字符串(在匹配字符串时加上?来实现) def re_find02():  r1=re.findall("Python.*/.",data) # 贪婪匹配  print(r1)  r2 = re.findall("Python.*?/.", data) #非贪婪匹配  print(r2) if __name__=="__main__":  re_nocompile()  re_compile()  re_match()  re_search()  re_finditer()  re_find02() import re import requests data='''12345 2019-05-20 13:30:04,102 E:/PythonProject/accountReport-20190520/createReport_20190520.py(164): [INFO]start=24h-ago&m=sum:zscore.keys{compared=week,redis=6380,endpoint=192.168.8.11_Redis-b} 2019-05-20 13:30:04,133 E:/PythonProject/accountReport-20190520/createReport_20190520.py(164): [INFO]start=24h-ago&m=sum:keys{redis=6380,endpoint=192.168.8.120_Redis-sac-a} ''' # 1)“修改类”函数 # 1.1) sub函数进行匹配并替换,返回替换后的字符串 def re_sub():  pattern = "[0-9]{1,2}/:[0-9]{1,2}/:[0-9]{1,2}" # 匹配时间格式  data01=re.sub(pattern,"timeString",data)  print(data01) # 1.2)splite将字符串拆成子串列表,可以同时指定多个分隔符 def re_split():  r=re.split(r"[:/-/=]",data.strip("'"))  print(r) # 2)匹配htML的一个例子 def re_html():  r=requests.get("https://www.hao123.com/")  print(r.content)  try:   web=re.findall("(https:.*?.com)",str(r.content))   print(web)  except Exception as err:   print(err) if __name__=="__main__":  re_sub()  re_split()  re_html()

总结

脚本宝典总结

以上是脚本宝典为你收集整理的python正则表达式的使用(实验代码)全部内容,希望文章能够帮你解决python正则表达式的使用(实验代码)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。