Python 正則替換字串

2021-07-28 21:52:39 字數 2427 閱讀 8794

需求:

1. 替換給定字串中符合正則匹配的子串。

2. 使用者配置增加、刪減替換規則方便。

3. 基於裝飾器模式實現。

基於re包和裝飾器模式實現。

參考裝飾器模式,這資料挺不錯的,有人把設計模式用python都實現了一遍。

郵箱正則匹配:

email_regex = r'[0-9a-za-z_]@[0-9a-za-z]\.(?:com|cn|net)'
url_regex = r"\"?http[s]?://(?:[a-za-z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fa-f][0-9a-fa-f]))+\"?"
日期正則匹配:

date_regex_standard = r"\d[./-]\d[./-]\d.\d[./: -]\d[./: -]\d"
ip正則匹配:

""" 整體匹配即可,匹配郵箱

"""return re.sub(email_regex, '$email$', self.log_text.get_log())

class

(object):

def__init__

(self, log_text):

self.log_text = log_text

defget_log

(self):

""" 整體匹配即可,用於匹配url

"""return re.sub(url_regex, '$url$', self.log_text.get_log())

class

(object):

def__init__

(self, log_text):

self.log_text = log_text

defget_log

(self):

""" 匹配2016*09*25*03*16*20形式日期,其中*代表空格、'/'、'-'、':'、'.'等符號。

"""return re.sub(date_regex_standard, '$date$', self.log_text.get_log())

class

(object):

def__init__

(self, log_text):

self.log_text = log_text

defget_log

(self):

""" 整體匹配即可,先匹配ip+埠號,再匹配ip

"""return re.sub(ip_regex, '$ip$', re.sub(ip_port_regex, '$ip+port$', self.log_text.get_log()))

if __name__ == "__main__":

log_text = logtext('[email protected]得到方法2016-07-09 09:21:23擦撒[email protected]')

print log_text_wrap.get_log()

print log_text_wrap.get_log()

python 字串替換 正則

因為看電影字幕有些不必要的想刪除,此段 用於刪除 內的內容。python 中 string的replace函式並不能直接使用 正規表示式,所以我們採取compile的方式 其中re為正則的標準庫。此段 包含 1.檔案的讀入輸出 2.正規表示式的使用 import re out open g and....

python字串替換

print replace實現多個子串替換 strr abaabbaccaaeeaa print 原字串 n format strr e strr.replace aa str 0 print 替換後的字串 n format e print split實現字串替換 strr abaabbaccaae...

python替換特定字串

python 字串替換是python操作字串的時候經常會碰到的問題,這裡簡單介紹下字串替換方法。python 字串替換可以用2種方法實現 1是用字串本身的方法。2用正則來替換字串 下面用個例子來實驗下 a hello word 我把a字串裡的word替換為python 1用字串本身的replace方...