正則 和 re模塊

一、正則:
正則 是一種 處理文字 的規則,讓我們提取有用信息
1、字符組(簡寫模式需從小到大)
表示數字的字符組:[178034],[0123456789],[0-9],[2-8]
表示字母的字符組:[abcd],[a-z],[A-Z]
表示匹配任意字符 : [\w\W][\d\D][\S\s]
2、正則匹配:字符 量詞 非貪婪標誌
字符:字符、字符組、元字符  表示一個字符位置上可以出現的內容

3、


  [^...]        匹配除了字符組中字符的所有字符



二、模塊:
模塊是我們使用Python去操作一些問題的工具。
import re

①# 返回所有滿足匹配條件的結果,放在列表裏

ret = re.findall('a', 'eva7 eg yuan')  
   print(ret) #結果 : ['a', 'a']

search從左到右依次找,找到一個就回來,需要使用group()獲取返回值
如果re.search找不到,就返回None。使用group會報錯

ret = re.search('a', 'eva egon yuan')  # a 啥意思啊,就返回個a,都不知道是哪裏的a
if ret:
    print(ret.group())

 # 不是從頭開始匹配,是匹配第一個!!!!!!!!!!!!!
   match從頭開始匹配,匹配上了需要使用group來獲取返回值
  匹配不上返回None,使用group會報錯

ret = re.match('a', 'bva egon yuan')
   print(ret.group())    

ret = re.split('[ac]', 'abcd')  # 先按'a'分割得到''和'bcd',在對''和'bcd'分別按'b'分割
    print(ret)  # ['', '', 'cd']

ret = re.sub('\d', 'H', 'eva3egon4yuan4',1)   #replace(old,new,count)
   print(ret)                                                    #sub(re,new,str,count)

#將數字替換成'H',返回元組(替換的結果,替換了多少次)

ret = re.subn('\d', 'H', 'eva3egon4yuan4')
   print(ret)

obj = re.compile('\d{3}')  #將正則表達式編譯成爲一個 正則表達式對象,規則要匹配的是3個數字
    ret = obj.search('abc123eeee') #正則表達式對象調用search,參數爲待匹配的字符串
   print(ret.group())  #結果 : 123

就是說太多要引用她的話,這樣比較省時間;
re.search('\d{3}','abc123eeee').group()
re.search('\d{3}','bcd123eeee')
re.search('\d{3}','efg123eeee')
re.search('\d{3}','xyz123eeee')

⑧ 

ret = re.finditer('\d', 'ds3sy4784a')   #finditer返回一個存放匹配結果的迭代器
# print(ret)  # <callable_iterator object at 0x10195f940>
# for i in ret:      # 查看所有結果
#     print(i.group())
print(next(ret).group())  #查看第一個結果
# print(next(ret).group())  #查看第二個結果
print([i.group() for i in ret])  #查看剩餘的左右結果


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章