Python 使用字符串替换将后跟文本的空格替换为空格

Python 使用字符串替换将后跟文本的空格替换为空格,python,regex,string,Python,Regex,String,我有一个日志文件,试图从中删除除数字(0-9)以外的所有不需要的文本。我可以使用string.replace(“”,“”)函数删除所有内容并获得所需的内容,但是,在一些地方,我仍然有一个空格,后跟字符串中元素末尾的一些文本 我能够从中获得12345 ansd: 12345,43556 然而,我仍然有一些元素在表单中 12345 hdjhdjf dfdfd "dfd". 有人能帮我理解如何使用替换来解决这个问题吗 >>> import re >>> re.

我有一个日志文件,试图从中删除除数字(0-9)以外的所有不需要的文本。我可以使用string.replace(“”,“”)函数删除所有内容并获得所需的内容,但是,在一些地方,我仍然有一个空格,后跟字符串中元素末尾的一些文本

我能够从中获得
12345

ansd: 12345,43556
然而,我仍然有一些元素在表单中

 12345 hdjhdjf dfdfd "dfd".
有人能帮我理解如何使用替换来解决这个问题吗

>>> 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"      .'
>>> 
或使用空格替换所有数字

>>> 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"      .'
>>> 

我已编辑您的问题以改进格式。。。请检查以确保我没有意外更改您试图询问的内容。它并非始终是同一个字符串,它们是字符串中的不同元素。我需要一个更通用的形式,我可以用它来摆脱下面提到的格式。(数字)(空白)(文本a-z)(,:“”)请再次查看。带字符串的部分应该是一个变量,正则表达式是带\d的部分。对不起,我认为,我的问题措辞不合适。我有一个由大量ID组成的字符串。有一些ID的格式不符合我需要的格式。例如,12345 DFSDF dsgfsg“asfda”。34543223 diosoidfh jdshfoshdo_sdjfk。76857 jkfhdjhdfj我需要将数字从字符串中的整个元素中分离出来,并将其替换为一个空格。这很有帮助,但是我希望得到一些东西,可以使用替换函数将不需要的部分替换为一个空格。你能帮忙吗?就在那儿。如果要用空格替换字符,请查看代码块#3。不要将字符串作为第三个参数,而是使用“庞大的ID列表”。