正則表達式匹配某幾個字前面的字符並且刪除


 

大概的需求就是,希望把start中這些字符串前面的字刪除,比如就希望刪除y中的‘

倪瓚(西元一三0一-一三七四年),江蘇無錫人

’這句話

就是先match匹配一下,然后sub置空一下:

.*表示匹配大於等於0個任意字符串

| 表示或,這里用或符號把列表轉字符串了

?=表示前瞻,可以看https://blog.csdn.net/csm0912/article/details/81206848

y='倪瓚(西元一三0一-一三七四年),江蘇無錫人畫卷。字元鎮,號雲林、迂翁。家境富饒,建清閟閣,收藏古書畫,但個性孤高有潔癖,四十歲以后便棄家外出,過著漂泊的生活。倪瓚作畫不喜用色彩,別有一種清淡雅逸的韻味。畫修竹二竿,和枯木立於拳石畔,筆墨簡率,不但竹葉本身深淺有致,和枯木、拳石間,也有濃淡之別。'
start = ('本幅', '此帖', '此長卷', '畫上', '畫卷', '此題', '此卷', '圖繪', '此作', '畫幅', '此札', '此小軸', '此長卷', '畫中', '畫面', '此為',
             '此冊', '此畫冊', '本卷', '此幅', '此幀', '本畫', '此像', '本件', '這套', '這是', '此頁', '是冊', '是圖', '本圖', '此碑', '本冊', '此畫')

if re.match(r".*(?=("+'|'.join(start)+r"))", str(y))!= None:
     print('y',y)
     temp_in = re.sub(r".*(?=("+'|'.join(start)+r"))", "", str(y))
     print('temp_in',temp_in)
print(re.match(r".*(?=("+'|'.join(start)+r"))", str(y))== None)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM