Python使用正則表達式替換源碼前序號


從博客園或其它地方拷貝代碼,經常前面有代碼序號,像下面這個樣子:

 1 wbContent.Navigate(vURL);
 2 
 3     Result:=GetHtml(wbContent);
 4 
 5     while not ContainsText(Result,'共找到') do
 6     begin
 7       Sleep(100);
 8       Application.ProcessMessages;
 9       Result:=GetHtml(wbContent);
10     end;
11 
12     Result:=GetHtml(wbContent);

 

可以使用Python的正則表達式來簡單地去掉前面的序號:

 

import re,sys

def refile():
    
    #sf='e:\\temp\\t.txt'
    #df='e:\\temp\\t_new.txt'

    #命令行輸入
    argvc=len(sys.argv)
    if argvc==1:
        sf=input('請輸入要轉換的原文件名:')
        df=input('請輸入要轉換的目標文件名:')
    if argvc==2:
        sf=sys.argv[1]
        df=input('請輸入要轉換的目標文件名:')
    if argvc==3:
        sf=sys.argv[1]
        df=sys.argv[2]

    fr=open(sf,'r')
    fw=open(df,'w')
    pat=re.compile('\A(\s\d)|(\d{1,3})')
    s=fr.readline()
    while s:
       m=pat.match(s)
       s=fr.readline()
       if m:
          ss=re.sub(pat, '', s)
       else:
          ss=s
       fw.write(ss+'\n')
    fr.close()
    fw.close()

if __name__ == '__main__':
    refile()

 上面只是簡單示例,將拷貝出來的源碼存爲t.txt,然後運行程序,則會生成t_new.txt文件。

發佈了5 篇原創文章 · 獲贊 6 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章