1. 程式人生 > 程式設計 >Python程式設計快速上手——strip()函式的正則表示式實現方法分析

Python程式設計快速上手——strip()函式的正則表示式實現方法分析

本文例項講述了Python strip()函式的正則表示式實現方法。分享給大家供大家參考,具體如下:

題目如下:

  • 寫一個函式,它接受一個字串,做的事情和strip()字串方法一樣。如果只傳入要去除的字串(原字串),沒有其他引數,那麼就從該字串首尾去除空白字串。否則,函式第二個引數指定的字串將從該字串中去除

思路如下:

  • 補充:字串的str.strip()方法,去除字串首尾指定的字元,只能去除頭尾兩邊,不能去除中間
  • 程式需要做以下的事情:
    接受一個字串和要去除的字元
    呼叫函式去除字串指定頭尾字元
    返回去除後的字串
  • 程式碼需要做以下的事情:
    def定義一個函式,接受兩個引數
    建立正則表示式物件
    返回Regex.sub()替換後的字串
    input()輸入字串
    print()列印輸出函式返回物件
  • 重點分析:
    根據strip()方法特性,去除頭尾特定字元需要用到“ ^ ”和“ $ ”符號。
    由於不能事先知道去除哪些字元,因此在正則表示式中需要用到format格式字串。
    需要用 | “管道"符號在^{0}和{0}$之間插入,匹配多個分組。
    sub()方法返回替換後的字串,因此sub()方法的第一個引數為”"空。

    *預設去除字串首尾空白字元,我的方法是在input()輸入引數二時,若input() == “”,則重新賦值引數二為" "空格-星號,星號匹配0次或多次分組,能夠匹配到所有空格。

程式碼如下:

import re

def fakeStrip(longStr,str ):
    stripRex = re.compile(r'^{0}|{0}$'.format(str)) 
    return stripRex.sub('',longStr)

inputStr1 = input("請輸入原字串:")
inputStr2 = input("請輸入要去除的字元:")
if inputStr2 == '': #若第二引數是否為空,更改為' *',方便正則表示式進行模式匹配
  inputStr2 = ' *'
print("去除後的字串為:",fakeStrip(inputStr1,inputStr2))

輸出結果如下:

  • 去除字串
    去除字串
  • 去除空格
    去除空格

PS:這裡再為大家提供2款非常方便的正則表示式工具供大家參考使用:

JavaScript正則表示式線上測試工具:
http://tools.jb51.net/regex/javascript

正則表示式線上生成工具:
http://tools.jb51.net/regex/create_reg

更多關於Python相關內容可檢視本站專題:《Python正則表示式用法總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。