使用字符串替换替换空格,后跟带有空格的文本

时间:2013-05-30 18:15:49

标签: python regex string

我有一个日志文件,我试图删除除数字(0-9)之外的所有不需要的文本。我能够使用string.replace('','')函数删除所有内容并获得所需的内容,但是,在几个地方,我仍然有一个空格,后面跟着一些文本朝向元素的末尾字符串。

例如。我能够从

获得12345
ansd: 12345,43556

但是,我仍然有一些形式为

的元素
 12345 hdjhdjf dfdfd "dfd".

任何人都可以帮助我了解如何使用替换这个特定的问题吗?

1 个答案:

答案 0 :(得分: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"      .'
>>>