7、正则表达式re常用方法

  • 正则表达式的编译---可以提高匹配效率
csvt_re = re.compile(r'csvt',re.I)      #属性re.I表示忽略大小写
print(csvt_re.findall('CSvt'))          #打印匹配到的['CSvt']

  编译后的对象使正则表达式匹配更加灵活,对象常用的方法:

  1. match():决定RE是否在字符串刚开始的位置
  2. search():扫描字符串,找到RE匹配的位置,匹配的字符串可以是任意位置,没有的话返回None
  3. findall():找到RE匹配的所有子串,并作为一个列表返回
  4. finditer():找到RE匹配的所有子串,并作为一个迭代器返回

  match()和search()匹配成功返回一个matchObject,匹配失败返回None,match Object实例方法:

  group()--返回RE匹配的字符串

  start()---返回匹配开始的位置

  end()---返回匹配结束的位置

  span()---返回一个元组包含匹配的位置

  实际程序中,最常见的是使用将matchObject保存在一个变量中,然后检查变量是否为None  

  • re.sub():替换字符串,相比于字符串的方法replace()更加灵活
rule = r'c..t'
re.sub(rule,'python','csvt crrt cfet ffff')       #执行返回字符串'python python python ffff'
re.subn(rule,'python','csvt crrt cfet ffff')      #执行返回元组('python python python ffff',3),表示一共替换了3次
  • re.split():切割字符串,相比于字符串的方法split()更加灵活
>>> re.split(r'[\+\-\*]','123+456-789*aaa')
['123', '456', '789', 'aaa']

 

posted @ 2020-09-07 16:40  Real丶  阅读(267)  评论(0编辑  收藏  举报