乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python正則表達式中的re.S,re.M,re.I的作用

       醉人說夢 2019-07-26

      正則表達式可以包含一些可選標志修飾符來控制匹配的模式。修飾符被指定為一個可選的標志。多個標志可以通過按位 OR(|) 它們來指定。如 re.I | re.M 被設(shè)置成 I 和 M 標志:

      修飾符描述
      re.I 使匹配對大小寫不敏感
      re.L 做本地化識別(locale-aware)匹配
      re.M 多行匹配,影響 ^ 和 $
      re.S 使 . 匹配包括換行在內(nèi)的所有字符
      re.U 根據(jù)Unicode字符集解析字符。這個標志影響 \w, \W, \b, \B.
      re.X 該標志通過給予你更靈活的格式以便你將正則表達式寫得更易于理解。

      re.S

      在Python的正則表達式中,有一個參數(shù)為re.S。它表示 “.” 的作用擴展到整個字符串,包括“\n”??慈缦麓a:

      1
      2
      3
      4
      5
      6
      7
      8
      import re
      a = '''asdfhellopass:
          worldaf
          '''
      b = re.findall('hello(.*?)world',a)
      c = re.findall('hello(.*?)world',a,re.S)
      print 'b is ' , b
      print 'c is ' , c

        

      1
      2
      3
      運行結(jié)果:
      b is  []
      c is  ['pass:\n\t123\n\t']

        正則表達式中,“.”的作用是匹配除“\n”以外的任何字符,也就是說,它是在一行中進行匹配。這里的“行”是以“\n”進行區(qū)分的。a字符串有每行的末尾有一個“\n”,不過它不可見。

      如果不使用re.S參數(shù),則只在每一行內(nèi)進行匹配,如果一行沒有,就換下一行重新開始,不會跨行。而使用re.S參數(shù)以后,正則表達式會將這個字符串作為一個整體,將“\n”當做一個普通的字符加入到這個字符串中,在整體中進行匹配。

      re.I

        不區(qū)分大小寫

      1
      2
      3
      4
      5
      res = re.findall(r"A", "abc", re.I)
      print(res)
      運行結(jié)果:['a']

      re.M

        將所有行的尾字母輸出

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      >>> s= '12 34/n56 78/n90'
      >>> re.findall( r'^/d+' , s , re.M )          # 匹配位于行首的數(shù)字
      ['12', '56', '90']
      >>> re.findall( r’/A/d+’, s , re.M )        # 匹配位于字符串開頭的數(shù)字
      ['12']
      >>> re.findall( r'/d+$' , s , re.M )          # 匹配位于行尾的數(shù)字
      ['34', '78', '90']
      >>> re.findall( r’/d+/Z’ , s , re.M )        # 匹配位于字符串尾的數(shù)字
      ['90']

        

      re.sub

      1
      2
      3
      4
      # 要求結(jié)果:['12', '23', '34']
      l = ['1 2 ', '2   3', '  3 4']
      import re
      print(eval(re.sub(r'\s*', '', str(l))))

        

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多