2013-05-30 145 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