2013-05-30 187 views
0

我有一個日誌文件,我試圖刪除除數字(0-9)之外的所有不需要的文本。我能夠使用string.replace('','')函數來刪除所有內容並獲得所需的內容,但是,在一些地方,我仍然有一個空白區域,後面跟着一些文字,串。使用字符串替換空格後跟帶空格的文本替換

例如。我能夠從

ansd: 12345,43556 
然而

得到12345,我仍然是在形式

12345 hdjhdjf dfdfd "dfd". 

誰能幫助我瞭解如何使用替代這一特定問題的一些元素?

+0

我編輯了自己的問題,以改善格式...請檢查以確保我沒有意外地改變了您想要提問的內容。 – bdesham

回答

2
>>> import re 
>>> re.compile('[^\d]*(\d+)[^\d]*').findall('12345 hdjhdjf dfdfd "dfd".') 
['12345'] 
>>> re.compile('[^\d]*(\d+)[^\d]*').findall('ansd: 12345,43556') 
['12345'] 

編輯 - 這個怎麼樣?

>>> import re 
>>> re.compile('([^\d]*([0-9]+)[^\d]*)+').findall('12345 hdjhdjf dfdfd "dfd" 12333.') 
[('12333', '12333')] 
>>> 

或者到子網的所有非數字與空格

>>> import re 
>>> re.sub('[^\d]', ' ', '12345 hdjhdjf dfdfd "dfd" 12333.') 
'12345      12333 ' 

或者到子網所有的數字與空格

>>> import re 
>>> re.sub('[0-9]', ' ', '12345 hdjhdjf dfdfd "dfd" 12333.') 
'  hdjhdjf dfdfd "dfd"  .' 
>>> 
+0

它始終不是相同的字符串,它們是字符串中的不同元素。我需要一個更通用的形式,我可以用它來擺脫下面提到的格式。 (digits)(whitespaces)(text a-z)(。,:「」) – user2436752

+0

再次看。帶字符串的部分應該是一個變量,正則表達式是\ d – beiller

+0

的部分我很抱歉,我認爲,我說我的問題的方式不合適。我有一個由大量ID組成的字符串。有幾個ID不是我需要它們的格式。 贊,12345 dfsdfsdf dsgfsg「asfda」。 34543223 diosoidfh jdshfoshdo_sdjfk。 76857 jkfhdjhdfj 我需要從字符串中的整個元素中分離出數字,並用空格替換它。 – user2436752