python模組之re模組

來源:互聯網
上載者:User

標籤:表達   aaaaa   aaa   sdk   sds   ash   不成功   實現   開頭   

 1 # Regex是用來匹配字串的方法 2 # 字串本身就有匹配方式,為什麼要引入Regex? 因為原有的字串匹配不出來原始的方法 3 # 正則匹配是用來進行模糊比對的 4  5 s = "alex want to drink" 6 print(s.split(" ")) # 以恐嚇 7 print(s.find("a"))  # -1 8  9 10 import re11 # 。 模糊比對一個字元或者數字或者空格,但是不能匹配分行符號號12 # ^  行首匹配13 # $  結尾匹配14 # *  匹配前面0到多個字元 注意:0也是一個  0就是沒有也會返回一個Null 字元15 # +  匹配前面1到多個字元16 # ? 匹配前面0到1次的字元 前面的字元可能沒有,或只有一個17 # {} 指定匹配的次數範圍 {5}或者{1,5}前面的字元匹配5次 ‘aaaaaab‘ 這樣的字元也是可以取到的18 #    (預設是貪婪匹配 ,按照最多的來,或者按照最少的來)19 20 # findall() 方法  完全符合hello 返回列表21 pp = re.findall("h...o","asdadasdashelloasdasdasd")22 pp2 = re.findall("^h...o","asdadasdashelloasdasdasd")   #匹配不成功23 pp3 = re.findall("h*","asdashehllohhhhhhasdas")   #匹配不成功 [‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘h‘, ‘‘, ‘h‘, ‘‘, ‘‘, ‘‘, ‘hhhhhh‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘]24 print(pp3)
 1 import re 2 #二元字元 3 # [ ] 字元集 匹配給定範圍的一個元素 裡面是或的關係 4 # [ ] 取消元字元的特殊功能 比如* 就就被當成了一般字元 x 而不匹配多個字元了 但是 ^ \  - 這些字元例外! 5 # [^ ] ^在[ ]中是取反的意思! 6 # [^4,5] 這裡的意思是除了4或和除了5的 7 # \ 後面跟元字元會取消其特殊功能,但是後面跟著普通的個別字元可以實現特殊功能 \w 表示一個字母 8 # 如下所示: 9 # \d  匹配任何十進位數;它相當於類 [0-9]。10 # \D 匹配任何非數字字元;它相當於類 [^0-9]。11 # \s  匹配任何空白字元;它相當於類 [ \t\n\r\f\v]。12 # \S 匹配任何非空白字元;它相當於類 [^ \t\n\r\f\v]。13 # \w 匹配任何字母數字字元;它相當於類 [a-zA-Z0-9_]。14 # \W 匹配任何非字母數字字元;它相當於類 [^a-zA-Z0-9_]15 # \b  匹配一個特殊字元邊界,比如空格 ,&,#等16 # \\ 特殊字元 正則表達方式中的轉義符號\\ 會經過python的解譯器,那麼python解譯器需要再解釋一遍就是\\\\變成4個字元17 18 # () 括弧內的規則作為一個整體去匹配的19 # | 管道符號 或 的意思20 21 #方法二: x=re.search() 找到一個就返回,返回的是個對象 擷取這個對象的值的話 f.group() 擷取找到的值22 23 a=re.findall(‘a[b,v]c‘,‘abc‘)24 a=re.findall(‘[a,z]‘,‘abc‘)     # 這樣子會返回3個結果 分別是a b c25 print(a)26 c = re.findall(r"I\b","hello,I am hero I am OK")    # 注意轉義符號27 print(c)28 29 # \\ 轉移符號的使用 要理解一下,因為 Regex裡面轉義後需要經過python解譯器再轉義一遍30 # 方式一:31 n = re.search(r‘\\c‘,‘asdasd\cf‘)32 print(n.group())33 # 方式二:34 v = re.search(‘\\\\c‘,‘asdasd\cf‘)35 print(v.group())36 37 #()與| 的方式使用38 #()與| 的方式使用 升級版 複雜版 見下面樣本 正則與根據組名取值39 print(re.search("(as)|3","as3").group())      #as  注意 只有一個值40 # 進階版41 # <> 是Regex中的固定格式42 ret=re.search(‘(?P<id>\d{2})/(?P<name>\w{3})‘,‘23/com‘)43 print(ret.group())#23/com44 print(ret.group(‘id‘))#23
 1 # Regex的方法 2  3 re.findall() 4 re.search().group() 5 re.match()              #只在字串開始匹配  匹配成功返回一個對象,匹配不成功返回none 也只返回一個對象 6 re.split()              #重點在這裡  如意犯錯誤 7 re.sub()                #相當於replace替換 很好用的方法 8 re.compile()            #將規則編譯成一個對象去調用,節省代碼的使用量 9 10 11 # 這個先按照k進行分組,然後在按照s對k的分組再次進行分組 [‘a‘, ‘d‘, ‘dl‘, ‘op‘]12 print(re.split(‘[k,s]‘,‘asdkdlsop‘))13 # 注意容易犯錯的地方 s 在分割的開頭的話會有個Null 字元被分割出來14 print(re.split(‘[k,s]‘,‘sasdkdlsop‘))15 print(re.sub(‘a..x‘,‘s..b‘,‘asdalexppm‘))       #asds..bppm16 17 #re.compile() 的使用18 19 pp=re.compile(‘/.com‘)20 ret=pp.findall(‘asdadd.com‘)21 print(ret)

 

python模組之re模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.