1. 程式人生 > 實用技巧 >7、正則表示式re常用方法

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']