本文的一段實例代碼實現了通過用正則表達式來對某一個句子的添加、替換、刪除三種操作,本文給大家介紹的非常詳細,具有一定的參考借鑑價值,需要的朋友參考下吧
最近呢,公司讓寫一個組件,要求用正則表達式構建一箇中文的匹配組件,許多問題就來了,大多是用自動機來構建一個正則表達式的引擎,小編雖然大學的時候學過編譯原理,可奈何現在已經忘得差不多了,只能通過現有的正則表達式來進行功能實現。
下面的代碼呢實現了通過用正則表達式來對某一個句子的添加、替換、刪除三種操作,不知道這個適不適合大家的口味,反正小編已經做好讓公司頭批評的準備了,因此小編是在是現學不來呀。
# -*- conding:utf-8 -*- import re txt = '這個池子的體積大約是34立方米容積' '''role爲匹配規則,re_out爲替換部分格式爲“\1(替換部分)”''' def Replace(role,re_out): out = re.compile(role) String_out = out.sub(re_out,txt) print(String_out) Replace(r'(這個池子的體積大約是34)(.*)',r'\1平方米') ''' role爲匹配規則,num爲將要刪除的元素(從1開始) ''' def Delete(role,num): out = re.search(role,txt).group(num) string = txt.split(out) String_out = ''.join(string) print(String_out) Delete('(這個池子的體積大約是34)(.*)(容積)',2) def Add(role,re_out): out = re.compile(role) String_out = out.sub(re_out,txt) print(String_out) Add(r'(這個池子的體積大約是34)(.{0})',r'\1的')
下面的圖片是小編運行這三個函數得到的結果,大家可以看看,如果有需要的可以參考一下,另外,小編需要人告訴我這個正則表達式如何用自動機來實現,他的原理是什麼,歡迎大家的留言哦。
總結
以上所述是小編給大家介紹的正則表達式實現添加、刪除、替換三種功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!