Python 字符串學習

字符串處理python

  1,字符串分割
      (a)split 方法web

        str1 = "http:// www.qwe, qwe; qwe,qwe"
        import re
        re.split(r'[,;\s]\s*',str1)
        
   >>> ['http://', 'www.qwe', 'qwe', 'qwe', 'qwe']

     通常簡單的可使用 str.split("xxx")進行分割。可是re.split( ) 用起來更加的靈活。bash


  2, 字符串開頭和結尾ide

        (a) str.startswith( )/str.endswith( )spa

      filename = "http://zaixiankefu.txt"
      filename.endswith(".txt")
      
   >>>True
   
      filename.startswith("http:")
   >>>True
   
      # startswith( )和 endswith( )能夠接收一個元組數據,注意是元組。
   
      choice = (".txt",".avi")
      filename.endswith(choice)
   >>>True

        (b) 也可使用切片來判斷3d

      if filename[:4] == "http" and filename[-4:] == ".txt":
          return True

   

    3,字符串匹配orm

            簡單的就是str.startswith( ),str.endswith( ),str.find(),前兩種返回時bool 值,find是返回第一次匹配的下標值。對象

            使用正則進行匹配(更多方法參考正則文檔)。blog

       (a)re.match( )ci

               match 老是從字符串開始去匹配 。如匹配則返回一個匹配對象,失敗返回None。

       str1 = "2018/12/20"
       import re
       re.match(r'\d*/',str1)
   >>> <_sre.SRE_Match object; span=(0, 5), match='2018/'>

         (b) re.search( )

               search 會匹配整個字符串。如匹配則返回一個匹配對象,失敗返回None。

      re.search(r'/\d*/',str1)
   >>>  <_sre.SRE_Match object; span=(4, 8), match='/12/'>

        (c) re.findall( )

               findall( )會匹配整個字符串,匹配則返回一個list列表,要麼有值要麼空

                若是返回的值過多,可使用 finditer( )來替代。

      str1 = "www.baidu.com"
      import re
      re.finditer(r'w',str1) #會返回一個可迭代對象
  >>> <callable_iterator at 0x5be230>

        忽略大小寫進行匹配

        image.png


 4,字符串替換

          簡單的替換可使用 str.replace(old,new) 進行操做。

          re.sub( )能夠更加靈活處理。

        image.png

        反斜槓數字,例如 \3 指向前面模式的捕獲組號。


5,字符串中插入變量

      使用 format 和 format_map( ) + vars( )來進行處理。

            vars( )實現的是在變量域中找到所需的變量。

      image.png  

        缺點是,變量缺失後,會直接報錯。若是變量未找到

    image.png

    可使用類進行包裝。

相關文章
相關標籤/搜索